- Mar 23, 2021
-
-
Matt Morehouse authored
The main use case for this change is HWASan aliasing mode, which premaps the alias space adjacent to the dynamic shadow. With this change, the primary allocator can allocate from the alias space instead of a separate region. Reviewed By: vitalybuka, eugenis Differential Revision: https://reviews.llvm.org/D98293
-
Martin Storsjö authored
[libcxx] [test] Add XFAIL LIBCXX-WINDOWS-FIXME in 124 tests that fail in the future CI configuration This makes no attempt yet to look into the why/what for each of them, but makes the CI configuration useful for tracking further regressions. After looking into each case, they can either be fixed, or converted into UNSUPPORTED: windows or XFAIL: windows, once the cause is known and explained. A number of the filesystem cases can be fixed by patches that are currently in review. Differential Revision: https://reviews.llvm.org/D99095
-
Martin Storsjö authored
With current versions of MSVC, these tests do succeed. Differential Revision: https://reviews.llvm.org/D99094
-
Martin Storsjö authored
Fix nesting of static_env and CWDGuard, restore the cwd (with CWDGuard) before cleaning up the static_env. Previously, every test run left 2 directories behind in the temp dir. Differential Revision: https://reviews.llvm.org/D98954
-
Jonas Devlieghere authored
The commit got reverted because the tests were being run twice because of the overlapping test_exec_root. Pavel has since fixed that in 8248dd91.
-
Jonas Devlieghere authored
Don't configure `test_exec_root` in lit.site.cfg.py. It always gets overwritten by lit.cfg.py based on `lldb_obj_root`.
-
Louis Dionne authored
This reverts commit febbf68b because it added files that were not under the LLVM license. See https://reviews.llvm.org/D98207 for details.
-
Nikita Popov authored
-
Joshua Haberman authored
There is no functional change here (hence no new tests). The only change is to replace a couple uintptr_t members with llvm::PointerIntPair<> to clean up the code, making it more readable and less error prone. This cleanup highlighted that the old code was effectively casting away const. This is fixed by changing some function signatures. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D98889
-
Nikita Popov authored
This is an alternative to D98391/D98585, playing things more conservatively. If AllowRefinement == false, then we don't use InstSimplify methods at all, and instead explicitly implement a small number of non-refining folds. Most cases are handled by constant folding, and I only had to add three folds to cover our unit tests / test-suite. While this may lose some optimization power, I think it is safer to approach from this direction, given how many issues this code has already caused. Differential Revision: https://reviews.llvm.org/D99027
-
Raman Tenneti authored
gmtime and gmtime_r share the same common code. They call gmtime_internal a static inline function. Thus added only validation tests for gmtime_r. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D99046
-
Nikita Popov authored
These intrinsics don't need to be marked as arbitrary writing, it's sufficient to write inaccessible memory (aka "side effect") to preserve control dependencies. This means less special-casing in BasicAA. This is intended as an alternative to D98925. Differential Revision: https://reviews.llvm.org/D99022
-
Juneyoung Lee authored
This is a minor patch that updates ScalarEvolution::isImpliedCond to use logical and/or matcher.
-
Sanjay Patel authored
This is one step towards solving: https://llvm.org/PR49336 In that example, we disregard the recommended usage of builtin_expect, so an expensive (unpredictable) branch is folded into another branch that is guarding it. Here, we read the profile metadata to see if the 1st (predecessor) condition is likely to cause execution to bypass the 2nd (successor) condition before merging conditions by using logic ops. Differential Revision: https://reviews.llvm.org/D98898
-
Fangrui Song authored
[Driver] Bring back "Clean up Debian multiarch /usr/include/<triplet> madness" and restore i586-linux-gnu This reverts commit 933d146f and 21b211a8 (which mis-identified the issue) but restores i586-linux-gnu which was removed by `Gnu.cpp: remove obsoleted i386 triple detection from end-of-life distribution versions`. Looks like i586-linux-gnu was not dead enough (used in a sysroot by Fuchsia build bot based on Debian jessie:) but i486-linux-gnu should be very dead by now.
-
Yaxun (Sam) Liu authored
ROCm has changed installation path to /opt/rocm-{release}. Add detection for that. Also support ROCM_PATH environment variable. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D98867 -
Sanjay Patel authored
This will check the boundary conditions of the revised change proposed in D98898.
-
Sanjay Patel authored
This is no-functional-change intended (NFC), but needed to allow optimizer passes to use the API. See D98898 for a proposed usage by SimplifyCFG. I'm simplifying the code by removing the cl::opt. That was added back with the original commit in D19488, but I don't see any evidence in regression tests that it was used. Target-specific overrides can use the usual patterns to adjust as necessary. We could also restore that cl::opt, but it was not clear to me exactly how to do it in the convoluted TTI class structure.
-
Matt Morehouse authored
x86_64 aliasing mode will use fewer than 8 bits for tags, so refactor existing code to remove hard-coded 0xff and 8 values. Reviewed By: vitalybuka, eugenis Differential Revision: https://reviews.llvm.org/D98072
-
Fangrui Song authored
21b211a8 was reverted temporarily to give Fuchsia some time for migrating to a better sysroot, but the tests can be restored separately.
-
Petr Hosek authored
This reverts commit 874bdc8e which broke the use of older Debian sysroots.
-
Petr Hosek authored
This reverts commit 82f6e0dd which hasn't addressed the 874bdc8e issue.
-
Matt Arsenault authored
-
Philip Reames authored
-
Florian Hahn authored
This patch adds CHECK-LABEL lines to llvm/test/Transforms/LoopVectorize/vplan-printing.ll in order to make failures slightly easier to diagnose.
-
Matt Arsenault authored
-
serge-sans-paille authored
Better safe than sorry here, quoting Craig Topper: > Clang passes a pretty lengthy feature string.
-
Chris Lattner authored
This allows adding a C function pointer as a matchAndRewrite style pattern, which is a very common case. This adopts it in ExpandTanh to show how it reduces a level of nesting. We could allow C++ lambdas here, but that doesn't work as well with type inference in the common case. Instead of: patterns.insert(convertTanhOp); you need to specify: patterns.insert<math::TanhOp>(convertTanhOp); which is boilerplate'y. Capturing state like this is very uncommon, so we choose to require clients to define their own structs and use the non-convenience method when they need to do so. Differential Revision: https://reviews.llvm.org/D99039
-
Stefan Pintilie authored
There is a bug when initial exec is relaxed to local exec. In the following situation: InitExec.c ``` extern __thread unsigned TGlobal; unsigned getConst(unsigned*); unsigned addVal(unsigned, unsigned*); unsigned GetAddrT() { return addVal(getConst(&TGlobal), &TGlobal); } ``` Def.c ``` __thread unsigned TGlobal; unsigned getConst(unsigned* A) { return *A + 3; } unsigned addVal(unsigned A, unsigned* B) { return A + *B; } ``` The problem is in InitExec.c but Def.c is required if you want to link the example and see the problem. To compile everything: ``` clang -O3 -mcpu=pwr10 -c InitExec.c clang -O3 -mcpu=pwr10 -c Def.c ld.lld InitExec.o Def.o -o IeToLe ``` If you objdump the problem object file: ``` $ llvm-objdump -dr --mcpu=pwr10 InitExec.o ``` you will get the following assembly: ``` 0000000000000000 <GetAddrT>: 0: a6 02 08 7c mflr 0 4: f0 ff c1 fb std 30, -16(1) 8: 10 00 01 f8 std 0, 16(1) c: d1 ff 21 f8 stdu 1, -48(1) 10: 00 00 10 04 00 00 60 e4 pld 3, 0(0), 1 0000000000000010: R_PPC64_GOT_TPREL_PCREL34 TGlobal 18: 14 6a c3 7f add 30, 3, 13 0000000000000019: R_PPC64_TLS TGlobal 1c: 78 f3 c3 7f mr 3, 30 20: 01 00 00 48 bl 0x20 0000000000000020: R_PPC64_REL24_NOTOC getConst 24: 78 f3 c4 7f mr 4, 30 28: 30 00 21 38 addi 1, 1, 48 2c: 10 00 01 e8 ld 0, 16(1) 30: f0 ff c1 eb ld 30, -16(1) 34: a6 03 08 7c mtlr 0 38: 00 00 00 48 b 0x38 0000000000000038: R_PPC64_REL24_NOTOC addVal ``` The lines of interest are: ``` 10: 00 00 10 04 00 00 60 e4 pld 3, 0(0), 1 0000000000000010: R_PPC64_GOT_TPREL_PCREL34 TGlobal 18: 14 6a c3 7f add 30, 3, 13 0000000000000019: R_PPC64_TLS TGlobal 1c: 78 f3 c3 7f mr 3, 30 ``` Which once linked gets turned into: ``` 10010210: ff ff 03 06 00 90 6d 38 paddi 3, 13, -28672, 0 10010218: 00 00 00 60 nop 1001021c: 78 f3 c3 7f mr 3, 30 ``` The problem is that register 30 is never set after the optimization. Therefore it is not correct to relax the above instructions by replacing the add instruction with a nop. Instead the add instruction should be replaced with a copy (mr) instruction. If the add uses the same resgiter as input and as ouput then it is safe to continue to replace the add with a nop. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D95262 -
Chia-hung Duan authored
In the original structure, it will try to match CHECK-LABEL first then see if the subsequent doesn't have the target strings. This is not what we are expected. We are expecting the two functions which will be deleted should be matched before CHECK-LABEL. Also fixed the function names. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D99060
-
Matt Morehouse authored
-
Philip Reames authored
-
Philip Reames authored
-
Rob Suderman authored
Multiply-shift requires wider compute types or CPU specific code to avoid premature truncation, apply_shift fixes this issue Also, Tosa's mul op supports different input / output types. Added path that sign-extends input values to int-32 values before multiplying. Differential Revision: https://reviews.llvm.org/D99011
-
Peter Steinfeld authored
If you specify a specific procedure of a generic interface that has the same name as both the generic interface and a preceding derived type, the compiler would fail an internal call to CHECK(). I fixed this by testing for this situation when processing specific procedures. I also added a test that will cause the call to CHECK() to fail without this new code. Differential Revision: https://reviews.llvm.org/D99085
-
Philip Reames authored
-
Lang Hames authored
-
Philip Reames authored
-