- Sep 15, 2020
-
-
Louis Dionne authored
Setting _LIBCPP_HAS_NO_THREADS is needed when building libcxxabi without threads in standalone mode. This is useful when target WASM. Otherwise, you get an error like "No thread API" when building libcxxabi. It would be better to link against a properly-configured libc++ headers CMake target when building libc++abi instead, but we don't generate such targets yet. Thanks to Matthew Bauer for the patch. Differential Revision: https://reviews.llvm.org/D60743
-
Simon Pilgrim authored
More remaining dependencies down to LoopCacheAnalysis.cpp
-
Simon Pilgrim authored
Forward declare AAResults instead of the (old) AliasAnalysis type.
-
Simon Pilgrim authored
These are all directly included in AliasSetTracker.h
-
Sjoerd Meijer authored
Loop tripcount expressions have a positive range, so use unsigned SCEV ranges for them. Differential Revision: https://reviews.llvm.org/D87608
-
Bjorn Pettersson authored
The "takeName" logic in ScalarizerVisitor::gather did not consider that the value vector could refer to non-instructions, such as global variables. This patch make sure that we avoid changing the name of a value if it isn't an instruction. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D87685
-
Pavel Labath authored
qemu calls the "fp" and "lr" registers via their generic names (x29/x30). This mismatch manifested itself as not being able to unwind or display values of some local variables.
-
Pavel Labath authored
lldbUtilityHelpers does not depend on lldbSymbolHelpers. Remove that dependency, and add direct lldbSymbolHelpers dependencies where needed.
-
Hans Wennborg authored
This seems to have caused incorrect register allocation in some cases, breaking tests in the Zig standard library (PR47278). As discussed on the bug, revert back to green for now. > Record internal state based on register units. This is often more > efficient as there are typically fewer register units to update > compared to iterating over all the aliases of a register. > > Original patch by Matthias Braun, but I've been rebasing and fixing it > for almost 2 years and fixed a few bugs causing intermediate failures > to make this patch independent of the changes in > https://reviews.llvm.org/D52010. This reverts commit 66251f7e, and follow-ups 931a68f2 and 0671a4c5. It also adjust some test expectations.
-
Simon Pilgrim authored
These are all directly included in SpillPlacement.h
-
Simon Pilgrim authored
These are all directly included in StatepointLowering.h
-
Simon Pilgrim authored
Reduce to forward declarations and move implicit dependencies down to the cpp files.
-
Florian Hahn authored
This patch recommits "[ConstraintSystem] Add helpers to deal with linear constraints." (it reverts the revert commit 8da6ae4c). The reason for the revert was using __builtin_multiply_overflow, which is not available for all compilers. The patch has been updated to use MulOverflow from MathExtras.h
-
Alex Zinenko authored
When packing function results into a structure during the standard-to-llvm dialect conversion, do not assume the conversion was successful and propagate nullptr as error state. Fixes PR45184. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D87605
-
Jakub Lichman authored
Changing directory name to reflect naming convention discussed here: https://llvm.discourse.group/t/vectorops-rfc-add-suite-of-integration-tests-for-vector-dialect-operations/1213 Differential Revision: https://reviews.llvm.org/D87678
-
Benjamin Kramer authored
This reverts commit cfff88c0. Sends instcombine into an infinite loop. ``` define i1 @foo(i32 %arg, i32 %arg1) { bb: %tmp = udiv i32 %arg, %arg1 %tmp2 = mul nsw i32 %tmp, %arg1 %tmp3 = icmp eq i32 %tmp2, %arg %tmp4 = select i1 %tmp3, i32 %tmp, i32 undef %tmp5 = icmp sgt i32 %tmp4, 255 ret i1 %tmp5 } ```
-
Simon Pilgrim authored
We're now getting close to having the necessary analysis/combines etc. for the new generic llvm smax/smin/umax/umin intrinsics. This patch updates the SSE/AVX integer MINMAX intrinsics to emit the generic equivalents instead of the icmp+select code pattern. Differential Revision: https://reviews.llvm.org/D87603
-
Meera Nakrani authored
Fixed a small error in an if condition to prevent usat/ssat being generated if (upper constant + 1) is not a power of 2.
-
Qiu Chaofan authored
960cbc53 immediately removes nodes that won't be used to avoid compilation time explosion. This patch adds the removal to constants to fix PR47517. Reviewed By: RKSimon, steven.zhang Differential Revision: https://reviews.llvm.org/D87614
-
Simon Pilgrim authored
Helps Visual Studio check include dependencies.
-
Sjoerd Meijer authored
-
Simon Pilgrim authored
Drop the pow2 vector limitation for AVG generation by padding the vector to the next pow2, creating the PAVG nodes and then extracting the final subvector. Fixes some poor codegen that has been annoying me for years.....
-
Georgii Rymar authored
Our implementation of stack sizes section dumping heavily uses `ELFObjectFile<ELFT>`, while the rest of the code uses `ELFFile<ELFT>`. That APIs are very different. `ELFObjectFile<ELFT>` is very generic and has `SectionRef`, `RelocationRef`, `SymbolRef` and other generic concepts. The `ELFFile<ELFT>` class works directly with `Elf_Shdr`, `Elf_Rel[a]`, `Elf_Sym` etc, what is probably much cleaner for ELF dumper. Also, `ELFObjectFile<ELFT>` API does not always provide a way to check for possible errors. E.g. the implementation of `symbol_end()` does not verify the `sh_size`: ``` template <class ELFT> basic_symbol_iterator ELFObjectFile<ELFT>::symbol_end() const { const Elf_Shdr *SymTab = DotSymtabSec; if (!SymTab) return symbol_begin(); DataRefImpl Sym = toDRI(SymTab, SymTab->sh_size / sizeof(Elf_Sym)); return basic_symbol_iterator(SymbolRef(Sym, this)); } ``` There are many other examples which makes me thing we might win from switching to `ELFFile<ELFT>` API, where we heavily validate an input data already. This patch is the first step in this direction. I've converted the large portion of the code to use `ELFFile<ELFT>`. Differential revision: https://reviews.llvm.org/D87362
-
Petr Hosek authored
This is a follow up to c1f2fb51.
-
Georgii Rymar authored
`ELFFile<ELFT>` has many methods that take pointers, though they assume that arguments are never null and hence could take references instead. This patch performs such clean-up. Differential revision: https://reviews.llvm.org/D87385
-
Petar Avramovic authored
Update TargetMachine.Options with function attributes before we start to generate MIR instructions. This allows access to correct function attributes via TargetMachine.Options (it used to access attributes of the function that was translated first). This affects some existing tests with "no-nans-fp-math" attribute. Follow-up on D87456. Differential Revision: https://reviews.llvm.org/D87511
-
Sjoerd Meijer authored
-
Hans Wennborg authored
Differential revision: https://reviews.llvm.org/D87471
-
Petr Hosek authored
This addresses test failure revealed by 042c2350.
-
Han Seoul-Oh authored
-
David Sherwood authored
I've amended the isLoadInvariantInLoop function to bail out for scalable vectors for now since the invariant.start intrinsic is only ever generated by the clang frontend for thread locals or struct and class constructors, neither of which support sizeless types. In addition, the intrinsic itself does not currently support the concept of a scaled size, which makes it impossible to compare the sizes of different scalable objects, e.g. <vscale x 32 x i8> and <vscale x 16 x i8>. Added new tests here: Transforms/LICM/AArch64/sve-load-hoist.ll Transforms/LICM/hoisting.ll Differential Revision: https://reviews.llvm.org/D87227
-
Vitaly Buka authored
kAllocBegMagic should be enough. kAllocBegMagic is already set for the Secondary allocations. kAllocBegMagic is good enough for the Primary, but it's even safer for the Secondary allocator as all allocated block are from mmap. Depends on D87646. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D87647
-
Chris Hamilton authored
-
Vitaly Buka authored
-
Vitaly Buka authored
Make it atomic. Wrap it into class. Set it late after chunk is initialized. Reset it soon when the chunk is still valid. Depends on D87645. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D87646
-
Vitaly Buka authored
Depends on D87644. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D87645
-
Chris Hamilton authored
This reverts commit da55e9ba. Build bots uncovered coverage gap in testing. Change not ready.
-
Vitaly Buka authored
Before D87643 they where used to optimize UsedSize(). Which was called frequently from leak scanner. It was also used for calls from QuarantineCallback but we have heavy get_allocator().Deallocate call there anyway. Depends on D87643. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D87644
-
Vitaly Buka authored
Now we have enough space in the ChunkHeader. 45 bit is enough for kMaxAllowedMallocSize. Depends on D87642. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D87643
-
Craig Topper authored
The memory operand for these is incorrect.
-