- Oct 25, 2021
-
-
Danila Malyutin authored
Before the code would crash with "unhandled opcode in isAArch64FrameOffsetLegal" when there was a spill from extractelement. Fixes pr52249 Differential Revision: https://reviews.llvm.org/D112311
-
Pavel Labath authored
-
Vy Nguyen authored
`%t/basics` already exists - it would be nice to be able to examine it afterward Differential Revision: https://reviews.llvm.org/D112392
-
Nikita Popov authored
D109746 made BasicAA use range information to determine the minimum/maximum GEP offset. However, it was limited to the case of a single variable index. This patch extends support to multiple indices by adding all the ranges together. Differential Revision: https://reviews.llvm.org/D112378
-
Alexey Bataev authored
Need to change the order of the reduction/binops args pair vectorization attempts. Need to try to find the reduction at first and postpone vectorization of binops args. This may help to find more reduction patterns and vectorize them. Part of D111574. Differential Revision: https://reviews.llvm.org/D112224
-
Chris Bieneman authored
This patch adds a documentation note about the LLVM_USE_SPLIT_DWARF CMake option which is useful to reduce linker memory usage.
-
Jeremy Morse authored
This patch swaps two lines -- the CurSucc reference can be invalidated by the call to DFS.push_back, therefore that should happen last. The usual hat-tip to asan for catching this. This patch also swaps an ealier call to ToAdd.insert and DFS.push_back, where a stable iterator (from successors()) is being used. This isn't strictly necessary, but is good for consistency and avoiding readers asking themselves why the two code portions have a different order.
-
Kadir Cetinkaya authored
-
Sanjay Patel authored
(i8 X ^ 128) & (i8 X s>> 7) --> usubsat X, 128 As suggested in D112085, we can substitute 'xor' with 'add' in this pattern, and it is logically equivalent: https://alive2.llvm.org/ce/z/eJtWWC We canonicalize to 'xor' in IR, but SDAG does not do that (and it probably should not - https://llvm.org/PR52267 ), so it is possible to see either pattern in codegen. Note that 'sub' is a another potential pattern, but that is canonicalized to 'add' in DAGCombiner, so we don't need to worry about that variation. Differential Revision: https://reviews.llvm.org/D112377
-
Tim Northover authored
Unfortunately ToT has changed enough from the revision where this actually caused problems that the test no longer triggers an assertion failure.
-
Dmitry Vyukov authored
Trapping on CHECK failure makes it more convinient to use with gdb (no need to set a breakpoint each time). Without a debugger attached trap should terminate the program as well. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112440
-
Dmitry Vyukov authored
PPC64 bot failed with the following error. The buildbot output is not particularly useful, but looking at other similar tests, it seems that there is something broken in free stacks on PPC64. Use the same hack as other tests use to expect an additional stray frame. /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c:28:11: error: CHECK: expected string not found in input // CHECK: Previous write of size 4 at {{.*}} by thread T1{{.*}}: ^ <stdin>:13:9: note: scanning from here #1 main /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c:17:3 (free_race3.c.tmp+0x1012fab8) ^ <stdin>:17:2: note: possible intended match here ThreadSanitizer: reported 1 warnings ^ Input file: <stdin> Check file: /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c -dump-input=help explains the following input dump. Input was: <<<<<< . . . 8: Previous write of size 4 at 0x7ffff4d01ab0 by thread T1: 9: #0 Thread /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c:8:10 (free_race3.c.tmp+0x1012f9dc) 10: 11: Thread T1 (tid=3222898, finished) created by main thread at: 12: #0 pthread_create /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1001:3 (free_race3.c.tmp+0x100b9040) 13: #1 main /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c:17:3 (free_race3.c.tmp+0x1012fab8) check:28'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found 14: check:28'0 ~ 15: SUMMARY: ThreadSanitizer: data race /home/buildbots/ppc64le-clang-lnt-test/clang-ppc64le-lnt/llvm/compiler-rt/test/tsan/free_race3.c:19:3 in main check:28'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16: ================== check:28'0 ~~~~~~~~~~~~~~~~~~~ 17: ThreadSanitizer: reported 1 warnings check:28'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ check:28'1 ? possible intended match >>>>>> Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112444
-
Thomas Symalla authored
-
Nicolas Vasilache authored
This revision also moves some code around to improve overall structure. Differential Revision: https://reviews.llvm.org/D112437
-
Denys Petrov authored
Summary: Fix a case when the extent can not be retrieved correctly from incomplete array declaration. Use redeclaration to get the array extent. Differential Revision: https://reviews.llvm.org/D111542
-
Denys Petrov authored
Summary: 1. Improve readability by moving deeply nested block of code from RegionStoreManager::getBindingForElement to new separate functions: - getConstantValFromConstArrayInitializer; - getSValFromInitListExpr. 2. Handle the case when index is a symbolic value. Write specific test cases. 3. Add test cases when there is no initialization expression presented. This patch implies to make next patches clearer and easier for review process. Differential Revision: https://reviews.llvm.org/D106681
-
Matthias Springer authored
Do not erase those ops during the traversal. Also improve error handling. Differential Revision: https://reviews.llvm.org/D112405
-
Dmitry Vyukov authored
Add a test where a race with free is called during the free itself (we only have tests where a race with free is caught during the other memory acces). Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112433
-
Dmitry Vyukov authored
Building Go programs with the current runtime fails with: loadelf: race_linux_amd64: malformed elf file: _ZZN6__tsan15RestoreAddrImpl5ApplyINS_11MappingGo48EEEmmE6ranges: invalid symbol binding 10 Go linker does not understand ELF in all its generality. Don't use static const data in inline methods. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112434
-
Simon Moll authored
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D112414
-
Max Kazantsev authored
Demonstrates hang in iterativelySimplifyCFG.
-
Kadir Cetinkaya authored
Fixes https://github.com/clangd/clangd/issues/878. Differential Revision: https://reviews.llvm.org/D111260
-
Kadir Cetinkaya authored
-
Kadir Cetinkaya authored
This used to span just the `[[enum foo]] : bar;` in the absence of a body. This patch expands the range to cover the base specifier, so that the various consumers can detect the full range of the decl. Differential Revision: https://reviews.llvm.org/D111259
-
Raphael Isemann authored
This just does the usual modernizations such as using new test functions where possible, clang-formatting the source, avoiding manual process setup, assert improvements (` assertTrue(a == b) -> assertEqual(a, b)`). This doesn't add any new test cases but removes some dependence on unrelated features where possible (e.g., structs declared in functions, using the standard library to printf stuff or initialize objects).
-
Bradley Smith authored
This patch splits the existing SveVectorBits LangOpt into VScaleMin and VScaleMax LangOpts such that we can represent such an option. The cc1 option has also been split into -mvscale-{min,max}=<n> options so that the cc1 arguments better reflect the vscale_range IR attribute. Differential Revision: https://reviews.llvm.org/D111790
-
Raphael Isemann authored
Makes the test failure reason more obvious in cases where we have unnamed fields or large records.
-
Alex Zinenko authored
In several cases, operation result types can be unambiguously inferred from operands and attributes at operation construction time. Stop requiring the user to provide these types as arguments in the ODS-generated constructors in Python bindings. In particular, handle the SameOperandAndResultTypes and FirstAttrDerivedResultType traits as well as InferTypeOpInterface using the recently added interface support. This is a significant usability improvement for IR construction, similar to what C++ ODS provides. Depends On D111656 Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D111811
-
Alex Zinenko authored
Introduce the initial support for operation interfaces in C API and Python bindings. Interfaces are a key component of MLIR's extensibility and should be available in bindings to make use of full potential of MLIR. This initial implementation exposes InferTypeOpInterface all the way to the Python bindings since it can be later used to simplify the operation construction methods by inferring their return types instead of requiring the user to do so. The general infrastructure for binding interfaces is defined and InferTypeOpInterface can be used as an example for binding other interfaces. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D111656
-
Kerry McLaughlin authored
This patch enables the use of reciprocal estimates for SVE when both the -Ofast and -mrecip flags are used. Reviewed By: david-arm, paulwalker-arm Differential Revision: https://reviews.llvm.org/D111657
-
Nikita Popov authored
To save people not familiar with InstCombine from creating patches that are immediately rejected by policy.
-
Max Kazantsev authored
We observe a hang within iterativelySimplifyCFG due to infinite loop execution. Currently, there is no limit to this loop, so in case of bug it just works forever. This patch adds an assert that will break it after 1000 iterations if it didn't converge.
-
David Green authored
-
Raphael Isemann authored
clang::Optional is just an alias used within Clang.
-
LLVM GN Syncbot authored
-
Manas authored
This patch selects all cmake options and passes them to global cmake command while building LLVM inside satest docker container. Prior to this, the cmake command was hard-coded and this would consume a huge amount of memory while building. There was no support to pass extra cmake options for the build, except for changing the command manually. This patch allows testers to pass all "-D*" cmake options to the build. Reviewed By: vsavchenko Differential Revision: https://reviews.llvm.org/D105447 Patch by: @manas (Manas Gupta)
-
Balazs Benics authored
This patch adds a checker checking `std::string` operations. At first, it only checks the `std::string` single `const char *` constructor for nullness. If It might be `null`, it will constrain it to non-null and place a note tag there. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D111247
-
Pavel Labath authored
-
Michał Górny authored
Return results of URI parsing as 'struct URI' instead of assigning them via output parameters. Differential Revision: https://reviews.llvm.org/D112314
-