- Jul 01, 2020
-
-
River Riddle authored
This revisions add mechanisms to Attribute/Type for attaching traits and interfaces. The mechanisms are modeled 1-1 after those for operations to keep the system consistent. AttrBase and TypeBase now accepts a trailing list of `Trait` types that will be attached to the object. These traits should inherit from AttributeTrait::TraitBase and TypeTrait::TraitBase respectively as necessary. A followup commit will refactor the interface gen mechanisms in ODS to support Attribute/Type interface generation and add tests for the mechanisms. Differential Revision: https://reviews.llvm.org/D81883
-
Sam McCall authored
Summary: They don't need ASTs or anything, so they should still run immediately. These were sync for historical reasons (they predate clangd having a pervasive threading model). This worked ok as they were "cheap". Aside for consistency, there are a couple of reasons to make them async: - they do IO (finding .clang-format) so aren't trivially cheap - having TUScheduler involved in running these tasks means we can use it as an injection point for configuration. (TUScheduler::run will need to learn about which file is being operated on, but that's an easy change). - adding the config system adds more potential IO, too Reviewers: kbobyrev Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82642
-
Arthur Eubanks authored
Follow up to https://reviews.llvm.org/D82607.
-
Kit Barton authored
There are two uses of TM (instance of TargetMachine) when checking options. These will not work once we enable GlobalISel. This patch replaces those uses of TM with Subtarget->getTargetMachine().
-
Alex Lorenz authored
Some buildbot configurations don't build the arm64 backend, so the test-cases that need arm64 should go into the aarch64 subdirectory.
-
Craig Topper authored
This function picks X86 opcode name based on type, masking, and whether not a load or broadcast has been folded using multiple switch statements. The contents of the switches mostly just vary in a few characters in the instruction name. So use some macros to build the instruction names to reduce the repetiveness.
-
Amy Kwan authored
This patch adds the td definitions and asm/disasm tests for the following instructions: XXSPLTIW XXSPLTIDP XXSPLTI32DX XXPERMX XXBLENDVB XXBLENDVH XXBLENDVW XXBLENDVD VSLDBI VSRDBI Differential Revision: https://reviews.llvm.org/D82896
-
Zixu Wang authored
Summary: Add an `-Wundef-prefix=<arg1>,<arg2>...` option, which is similar to `-Wundef`, but only give warnings for undefined macros with the given prefixes. Reviewers: ributzka, steven_wu, cishida, bruno, arphaman, rsmith Reviewed By: ributzka, arphaman Subscribers: riccibruno, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80751 This patch was authored by Zixu Wang <zixu_wang@apple.com>
-
Vince Bridgers authored
Summary: Running CTU testing, we found that VisitFriendDecl in ASTImporterLookup.cpp was not handling a particular non-dependent case, so we reached the llvm_unreachable case. The FriendDecl and QualType not handled were: (gdb) p D->dump() FriendDecl 0x7ffff5cf1958 < <<srcfile>>, 'nlohmann::basic_json<std::map, std::vector, std::basic_string<char>, bool, long long, unsigned long long, double, std::allocator, adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>>':'nlohmann::basic_json<std::map, std::vector, std::basic_string<char>, bool, long long, unsigned long long, double, std::allocator, adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>>' (gdb) p Ty->dump() SubstTemplateTypeParmType 0x7ffff5cf0df0 'class nlohmann::basic_json<std::map, std::vector, class std::basic_string<char>, _Bool, long long, unsigned long long, double, std::allocator, adl_serializer, class std::vector<unsigned char, class std::allocator<unsigned char> > >' sugar |-TemplateTypeParmType 0x7ffff643ea40 'BasicJsonType' dependent depth 0 index 0 | `-TemplateTypeParm 0x7ffff643e9e8 'BasicJsonType' `-RecordType 0x1012ad20 'class nlohmann::basic_json<std::map, std::vector, class std::basic_string<char>, _Bool, long long, unsigned long long, double, std::allocator, adl_serializer, class std::vector<unsigned char, class std::allocator<unsigned char> > >' `-ClassTemplateSpecialization 0x1012ab68 'basic_json' Reviewers: martong, a.sidorin Reviewed By: martong Subscribers: kristof.beyls, rnkovacs, teemperor, cfe-commits, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D82882
-
Eli Friedman authored
It's messy to pattern-match, and completely unnecessary: scalar indexes work equally well. See also discussion on D81620 and D82061. Differential Revision: https://reviews.llvm.org/D82430
-
Louis Dionne authored
-
Julian Lettner authored
macOS versions do not necessarily start with 10 anymore. Remove an obsolete assert.
-
Eli Friedman authored
The indexing was messed up, so the result was completely broken. Shuffle constant exprs are rare in practice; without vscale types, constant folding generally elminates them. So sort of hard to trip over. Fixes regression from D72467. (Recommitting after fix for memory leak.) Differential Revision: https://reviews.llvm.org/D80330
-
Matt Arsenault authored
-
Matt Arsenault authored
Targets should not depend on the MachineFunction state during the MachineFunctionInfo construction.
-
Matt Arsenault authored
Continue migrating targets from depending on the MachineFunction during the initial construction.
-
Matt Arsenault authored
It will soon be disallowed to depend on MachineFunction state on construction.
-
Davide Italiano authored
Our assembler doesn't seem to grok floating point literals. <rdar://problem/64951608>
-
Davide Italiano authored
-
Jonas Devlieghere authored
Fix UBSan error detected in TestDataFormatterObjCCF.py and TestDataFormatterObjCNSDate.py: Scalar.cpp:698:27: runtime error: -4.96303e+08 is outside the range of representable values of type 'unsigned long long'.
-
Eli Friedman authored
In most cases, this doesn't have much impact: the destructors just call the base class destructor anyway. A few subclasses of ConstantExpr actually store non-trivial data, though. Make sure we clean up appropriately. This is sort of ugly, but I don't see a good alternative given the constraints. Issue found by asan buildbots running the testcase for D80330. Differential Revision: https://reviews.llvm.org/D82509
-
Florian Hahn authored
D79164/2596da31 changed getCFInstrCost to return 1 per default. AArch64 did not have its own implementation, hence the throughput cost of CFI instructions is overestimated. On most cores, most branches should be predicated and essentially free throughput wise. This restores a 9% performance regression on a SPEC2006 benchmark on AArch64 with -O3 LTO & PGO. This patch effectively restores pre 2596da31 behavior for AArch64 and undoes the AArch64 test changes of the patch. Reviewers: samparker, dmgreen, anemet Reviewed By: samparker Differential Revision: https://reviews.llvm.org/D82755
-
Alex Zinenko authored
Fix a typo in the documentation and simplify the condition to drop braces. Addresses post-commit review of https://reviews.llvm.org/D82647.
-
Craig Topper authored
This replaces the switch statement implementation in the clang's X86.cpp with a lookup table in X86TargetParser.cpp. I've used constexpr and copy of the FeatureBitset from SubtargetFeature.h to store the features in a lookup table. After the lookup the bitset is translated into strings for use by the rest of the frontend code. I had to modify the implementation of the FeatureBitset to avoid bugs in gcc 5.5 constexpr handling. It seems to not like the same array entry to be used on the left side and right hand side of an assignment or &= or |=. I've also used uint32_t instead of uint64_t and sized based on the X86::CPU_FEATURE_MAX. I've initialized the features for different CPUs outside of the table so that we can express inheritance in an adhoc way. This was one of the big limitations of the switch and we had resorted to labels and gotos. Differential Revision: https://reviews.llvm.org/D82731
-
Craig Topper authored
These features exist in earlier CPUs, but were deprecated on znver1/znver2. While working on D82731 I accidentally copied them from the earlier CPU. And nothing caught my mistake. Having these additional checks would have helped.
-
David Green authored
If the addend of the fma is zero, common sense would suggest that we can convert fma x, y, 0.0 to fmul x, y. This comes up with some user code that was expecting the first fma in an unrolled loop to simplify to a fmul. Floating point often does not follow naive common sense though. Alive suggests that this should be guarded by nsz (as fadd -0.0, 0.0 = 0.0). fma x, y, -0.0 is always valid. Differential Revision: https://reviews.llvm.org/D82778
-
Louis Dionne authored
-
Valentin Clement authored
Summary: Follow up to D81736. Move getOpenMPDirectiveKind, getOpenMPClauseKind, getOpenMPDirectiveName and getOpenMPClauseName to the new tablegen code generation. The code is generated in a new file named OMP.cpp.inc Reviewers: jdoerfert, jdenny, thakis Reviewed By: jdoerfert, jdenny Subscribers: mgorny, yaxunl, hiraditya, guansong, sstefan1, llvm-commits, thakis Tags: #llvm Differential Revision: https://reviews.llvm.org/D82405
-
Marius Brehler authored
Summary: This changes the casing of MLIRGPUtoGPURuntimeTransforms to be consistent with other transform libraries. Differential Revision: https://reviews.llvm.org/D82841
-
Alex Lorenz authored
This change lets LLVM use the LC_BUILD_VERSION command when building for macOS 10.14, iOS 12, tvOS 12, and watchOS 5. Additionally, this change ensures that new platforms like Apple Silicon macOS / Mac Catalyst, and simulators running on Apple Silicon alway use LC_BUILD_VERSION with the OS version set to the minimum supported OS version if the deployment target version is older. Differential Revision: https://reviews.llvm.org/D82836
-
Marius Brehler authored
Summary: This changes the casing of MLIRGPUtoNVVMTransforms to be consistent with other transform libraries. Reviewers: stephenneuendorffer, herhut Reviewed By: herhut Subscribers: jholewinski, mgorny, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, grosul1, Kayjukh, jurahul, msifontes Tags: #mlir Differential Revision: https://reviews.llvm.org/D82842
-
Marius Brehler authored
Summary: This changes the casing of MLIRGPUtoROCDLTransforms to be consistent with other transform libraries. Differential Revision: https://reviews.llvm.org/D82843
-
Jonas Devlieghere authored
-
Nathan James authored
Added a 'RefactorConditionVariables' option to control how the check handles condition variables Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D82824
-
Francesco Petrogalli authored
Summary: The following feature macros have been added: __ARM_FEATURE_SVE_BF16 __ARM_FEATURE_SVE_MATMUL_INT8 __ARM_FEATURE_SVE_MATMUL_FP32 __ARM_FEATURE_SVE_MATMUL_FP64 The driver has been updated to enable them accordingly to the value of the target feature passed at command line. The SVE ACLE tests using the macros have been modified to work with the target feature instead of passing the macro at command line. Reviewers: sdesmalen, efriedma, c-rhodes, kmclaughlin, SjoerdMeijer, rengolin Subscribers: tschuett, kristof.beyls, rkruppe, psnobl, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82623
-
Sameer Arora authored
Implement `-change` option for install-name-tool. The behavior exactly matches that of cctools. Depends on D82410. Reviewed By: jhenderson, smeenai Differential Revision: https://reviews.llvm.org/D82613
-
Sameer Arora authored
Implement `-id` option for install-name-tool. Differences from cctool's behavior: - Does **NOT** throw an error if multiple -id options are specified. Instead, picks the last one. - Throws an error in case empty id is specified. Reviewed By: jhenderson, smeenai Differential Revision: https://reviews.llvm.org/D82410 -
Reid Kleckner authored
This reduces peak memory on my test case from 1960.14MB to 1700.63MB (-260MB, -13.2%) with no measurable impact on CPU time. I'm currently working with a publics stream that is about 277MB. Before this change, we would allocate 277MB of heap memory, serialize publics into them, hold onto that heap memory, open the PDB, and commit into it. After this change, we defer the serialization until commit time. In the last change I made to public writing, I re-sorted the list of publics multiple times in place to avoid allocating new temporary data structures. Deferring serialization until later requires that we don't reorder the publics. Instead of sorting the publics, I partially construct the hash table data structures, store a publics index in them, and then sort the hash table data structures. Later, I replace the index with the symbol record offset. This change also addresses a FIXME and moves the list of global and public records from GSIHashStreamBuilder to GSIStreamBuilder. Now that publics aren't being serialized, it makes even less sense to store them as a list of CVSymbol records. The hash table used to deduplicate globals is moved as well, since that is specific to globals, and not publics. Reviewed By: aganea, hans Differential Revision: https://reviews.llvm.org/D81296
-
Sanjay Patel authored
See D82735 / rG1a6cebb4
-
Adrian Prantl authored
debugserver and lldb This patch improves the heuristics for correctly identifying simulator binaries on Darwin and adds support for simulators running on Apple Silicon. rdar://problem/64046344 Differential Revision: https://reviews.llvm.org/D82616
-