- Mar 29, 2022
-
-
Guillaume Chatelet authored
Fixes https://github.com/llvm/llvm-project/issues/53686 Differential Revision: https://reviews.llvm.org/D122481
-
Chenbing Zheng authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D121504
-
Uday Bondhugula authored
NFC. Remove dead FlatAffineConstraints constructor. Differential Revision: https://reviews.llvm.org/D122638
-
Zi Xuan Wu authored
Initialize TargetLoweringObjectFileELF and EH header.
-
Zi Xuan Wu authored
In generic cpu model, there are only low 16 registers and little 32-bit instruction. CK801 is the cpu family with least basic features like generic model. Add test run and check for generic cpu model in original test case to cover basic LLVM IR functionality.
-
Liqin Weng authored
Reviewed By: benshi001 Differential Revision: https://reviews.llvm.org/D122282
-
Jean Perier authored
When folding MAXLOC/MINLOC, the current element being compared was moved twice in row in case it became the new extremum. With numeric and logical types, it made no difference (std::move is a no-op for them), but for characters where the string storage is actually moved, it caused the new extremum to be set to the empty string, leading to wrong results. Note: I could have left the first std::move relating to logical Findloc, but it brings nothing and makes the code less auditable, so I also removed it. Differential Revision: https://reviews.llvm.org/D122590
-
Lian Wang authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D122204
-
Markus Böck authored
DR: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1479 Clang has implemented this DR as far back as I could go on compiler explorer (3.0). This patch simply adds a test case and needed comments for the update script to mark it as complete. Differential Revision: https://reviews.llvm.org/D122620
-
Argyrios Kyrtzidis authored
-
Serguei Katkov authored
According to definition of canonical form, it is a canonical if scale reg does not contain addrec for loop L then none of bases should contain addrec for this loop. The critical word here is "contains". Current checker of canonical form checks not "containing" property but "is". So it does not check whether it contains but whether it is. Fix the checker and canonicalizing utility to follow definition. Without this fix in the test attached the base formula looking as reg((-1 * {0,+,8}<nuw><nsw><%bb2>)<nsw>) + 1*reg((8 * (%arg /u 8))<nuw>) is considered as conanocial while base contains an addrec. And modified formula we want to insert reg({0,+,8}<nuw><nsw><%bb2>) + 1*reg((-8 * (%arg /u 8))) is considered as not canonical. Reviewed By: mkazantsev Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D122457 -
serge-sans-paille authored
Cleanup a few extra files, this closes the work on libLLVM dependencies on my side. Impact on libLLVM preprocessed output: -35876 lines Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D122576
-
luxufan authored
Due to D79842, clang dirver would search possible tool name in both possible locations, then moving to the next name. The gcc toolchain `llvm-project/clang/test/Driver/ Inputs/multilib_riscv_elf_sdk` don't have a `riscv64-unknown-elf-ld` executable in `llvm-project/clang/test/Driver/Inputs/multilib_riscv_elf_sdk/bin/`. So when searching `riscv64-unknown-elf-ld`, if there is a `riscv64-unknown-elf-ld` in `PATH`, the test would fail. This patch makes the `PATH` empty when testing it. Differential Revision: https://reviews.llvm.org/D122588
-
Liqin Weng authored
This transform will reduce one GPR. Reviewed By: craig.topper, benshi001 Differential Revision: https://reviews.llvm.org/D122051
-
LLVM GN Syncbot authored
-
Paul Kirth authored
This reverts commit 2add3fbd.
-
Paul Kirth authored
This reverts commit a427e188.
-
Shraiysh Vaishay authored
This patch adds translation for parallel sections from PFT to MLIR. Reviewed By: kiranchandramohan, NimishMishra Differential Revision: https://reviews.llvm.org/D122464
-
Nathan Ridge authored
Tabs are not handled by columnWidthUTF8() (they are considered non-printable) so require additional logic to handle. Fixes https://github.com/clangd/clangd/issues/1074 Differential Revision: https://reviews.llvm.org/D122554
-
Johannes Doerfert authored
-
Dominic Chen authored
Use a separate templated QuarantineBlocks class to avoid a zero-length array Differential Revision: https://reviews.llvm.org/D122518
-
Johannes Doerfert authored
-
Ben Shi authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D122524
-
Craig Topper authored
This function now takes a uint64_t instead of an APInt. The caller is responsible for masking the shift amount, extracting and inserting into the KnownBits APInts, and inverting to compute zeros. This is less code and cleaner division of responsibilities.
-
Johannes Doerfert authored
If we decided to delete a mapping entry we did not act on it right away but first issued and waited for memory copies. In the meantime some other thread might reuse the entry. While there was some logic to avoid colliding on the actual "deletion" part, there were two races happening: 1) The data transfer back of the thread deleting the entry and the data transfer back of the thread taking over the entry raced. 2) The update to the shadow map happened regardless if the entry was actually reused by another thread which left the shadow map in a inconsistent state. To fix both issues we will now update the shadow map and delete the entry only if we are sure the thread is responsible for deletion, hence no other thread took over the entry and reused it. We also wait for a potential former data transfer from the device to finish before we issue another one that would race with it. Fixes https://github.com/llvm/llvm-project/issues/54216 Differential Revision: https://reviews.llvm.org/D121058
-
Johannes Doerfert authored
-
Phoebe Wang authored
Currently, the regcall calling conversion in Clang doesn't match with ICC when passing / returning structures. https://godbolt.org/z/axxKMKrW7 This patch tries to fix the problem to match with ICC. Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D122104
-
Fangrui Song authored
This reverts commit 6faba31e. It may cause "offset is outside the section".
-
Philip Reames authored
We have the same code repeated in both callers, sink it into callee. The motivation here isn't just code style, we can also defer the relatively expensive aliasing checks until the cheap structural preconditions have been validated. (e.g. Don't bother aliasing if src is not an alloca.) This helps compile time significantly.
-
Philip Reames authored
If we vectorize a e.g. store, we leave around a bunch of getelementptrs for the individual scalar stores which we removed. We can go ahead and delete them as well. This is purely for test output quality and readability. It should have no effect in any sane pipeline. Differential Revision: https://reviews.llvm.org/D122493
-
Jacques Pienaar authored
A Block is optionally allocated & leaks in case of failed parse. Inline the function and ensure Block gets freed unless parse is successful. Differential Revision: https://reviews.llvm.org/D122112
-
zhongyunde authored
GlobalISel is used in option -O0, so add MOVI pattern for it, which is done similar in gcc.(https://godbolt.org/z/8j6fzG3h6) Fix https://github.com/llvm/llvm-project/issues/53651 Reviewed By: dmgreen, paquette Differential Revision: https://reviews.llvm.org/D122559
-
long.chen authored
we will get warning:```parameter ‘op’ set but not used``` when template function with empty template parameter list. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D122527
-
Brad Smith authored
Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D122522
-
Dominic Chen authored
This reverts commit 7dda44c1.
-
Chenbing Zheng authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D122564
-
Johannes Doerfert authored
Inline assembly is scary but we need to support it for the OpenMP GPU device runtime. The new assumption expresses the fact that it may not have call semantics, that is, it will not call another function but simply perform an operation or side-effect. This is important for reachability in the presence of inline assembly. Differential Revision: https://reviews.llvm.org/D109986
-
Johannes Doerfert authored
Before we gave up if a call through bitcast had parameter attributes. Interestingly, we allowed attributes for the return value already. We now handle both the same way, namely, we drop the ones that are incompatible with the new type and keep the rest. This cannot cause "more UB" than initially present. Differential Revision: https://reviews.llvm.org/D119967
-
Shao-Ce SUN authored
Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D122557
-
Fangrui Song authored
glibc sysdeps/aarch64/tst-vpcs-mod.S has something like: ``` .variant_pcs vpcs_call .global vpcs_call ``` This is supported by GNU as but leads to an error in MC. Use getOrCreateSymbol to support a not-yet-registered symbol: call `registerSymbol` to ensure the symbol exists even if there is no binding directive/label, to match GNU as. While here, improve tests to check (1) a local symbol can get STO_AARCH64_VARIANT_PCS (2) undefined .variant_pcs (3) an alias does not inherit STO_AARCH64_VARIANT_PCS. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D122507
-