Commit
f2018d6c16d118779d35f3705c74a31c1855ca56
by Lang Hames[ORC] Reintroduce the ORC C API test.
This test was removed in 51495fd285 due to broken bots. Its reintroduction is expected to trigger failures on some builders. The test has been modified to print error messages in full, which should aid in tracking these down.
|
 | llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt |
 | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp |
Commit
88ec05b654758fecfe7147064dce84a09e2e20a8
by llvmgnsyncbot[gn build] Port f2018d6c16d1
|
 | llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn |
Commit
9f631d14c638cc473101cd127697d037a33206a1
by serguei.katkov[GreedyRA] Add support for invoke statepoint with tied-defs.
statepoint instruction uses tied-def registers to represent live gc value which is use and def at the same time on a call. At the same time invoke statepoint instruction is a last split point which can throw and jump to landing pad. As a result we have instructon which is last split point with tied-defs registers and we need to teach Greedy RA to work with it.
The option -use-registers-for-gc-values-in-landing-pad controls whether statepoint lowering will generate tied-defs for invoke statepoint and is off by default now.
To resolve all issues the following changes has been done. 1) Last Split point for invoke statepoint should be statepoint itself
If statepoint has a def it is a relocated gc pointer and it should be available in landing pad. So we cannot split interval after statepoint at end of basic block.
2) Do not split interval on tied-def
If end of interval for overlap utility is a use which has tied-def we should not split interval on this instruction due to in this case use and def may have different registers and it breaks tied-def property.
3) Take into account Last Split Point for enterIntvAtEnd
If the use after Last Split Point is a def so it should be tied-def and we can take the def of the tied-use as ParentVNI and thus tied-use and tied-def will be live in resulting interval.
4) Handle the case when def is after LIP in InlineSpiller
If def of LI is after last insertion point of basic block we cannot hoist in this BB.
The example of such instruction is invoke statepoint where def represents the relocated live gc pointer. Invoke is a last insertion point and its def is located after it. In this case there is no place to insert spill and we bail out.
5) Fix removeBackCopies to account empty copies
RegAssignMap cannot hold empty interval, so do not set stop to kill value if it produces empty interval.
This can happen if we remove back-copy and right before that we have another back-copy.
For example, for parent %0 we can get %1 = COPY %0 %2 = COPY %0 while we removing %2 we cannot set kill for %1 due to its empty.
6) Do not hoist copy to BB if its def is after LSP
If the parent def is a LastSplitPoint or later we cannot hoist copy to this basic block because inserted copy (or re-materialization) will be located before the def.
All parts have been reviewed separately as follows: https://reviews.llvm.org/D100747 https://reviews.llvm.org/D100748 https://reviews.llvm.org/D100750 https://reviews.llvm.org/D100927 https://reviews.llvm.org/D100945 https://reviews.llvm.org/D101028
Reviewers: reames, rnk, void, MatzeB, wmi, qcolombet Reviewed By: reames, qcolombet Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D101150
|
 | llvm/lib/CodeGen/SplitKit.cpp |
 | llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir |
 | llvm/test/CodeGen/X86/statepoint-invoke-ra.mir |
 | llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir |
 | llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir |
 | llvm/lib/CodeGen/InlineSpiller.cpp |
 | llvm/lib/CodeGen/SplitKit.h |
 | llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir |
Commit
f4a2dbfe29031f02c02d6045159f22785dd611cf
by gh[MLIR][SCF] Combine adjacent scf.if with same condition
Differential Revision: https://reviews.llvm.org/D101798
|
 | mlir/lib/Dialect/SCF/SCF.cpp |
 | mlir/test/Dialect/SCF/canonicalize.mlir |
 | mlir/include/mlir/Dialect/SCF/SCFOps.td |
Commit
6ffc41b014f304a76f9a7eab39c122e0a9d7fcb8
by zoecarver[libcxx][ranges] Add `random_access_{iterator,range}`.
Differential Revision: https://reviews.llvm.org/D101316
|
 | libcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp |
 | libcxx/include/iterator |
 | libcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp |
 | libcxx/include/__iterator/concepts.h |
 | libcxx/include/__ranges/concepts.h |
 | libcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/set/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.bidir/subsumption.compile.pass.cpp |
 | libcxx/test/libcxx/iterators/iterator.concepts/iterator.concept.random.access/subsumption.compile.pass.cpp |
 | libcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/ranges/range.refinements/random_access_range.compile.pass.cpp |
 | libcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/random_access_iterator.compile.pass.cpp |
 | libcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp |
 | libcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp |
Commit
a71d666d189ed3b176b20c361604c7ec30d25621
by aqjune[InstCombine] Precommit tests for D101807 (NFC)
|
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
1fef5c88a69e0ede57e3867af72ac769dd11add1
by aqjune[InstCombine] Fold more select of selects using isImpliedCondition
This is a simple folding that does these:
``` select x_inv, true, (select y, x, false) => select x_inv, true, y ``` https://alive2.llvm.org/ce/z/-STJ2d
``` select (select y, x, false), true, x_inv => select y, true, x_inv ``` https://alive2.llvm.org/ce/z/6ruYt6
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D101807
|
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
 | llvm/test/Transforms/InstCombine/select-safe-transforms.ll |
Commit
600686d75f552dcecd9ef83aa8d3163c620f4429
by zoecarver[libcxx][ranges] Add ranges::size CPO.
The begining of [range.prim].
Differential Revision: https://reviews.llvm.org/D101079
|
 | libcxx/include/CMakeLists.txt |
 | libcxx/include/__ranges/size.h |
 | libcxx/include/ranges |
 | libcxx/include/type_traits |
 | libcxx/test/std/ranges/range.access/range.prim/size.pass.cpp |
Commit
6f1b10df916f2d538dd56da2d9976169708d2ac3
by zoecarver[libcxx][ranges] Add ranges::ssize CPO.
Based on D101079.
Differential Revision: https://reviews.llvm.org/D101189
|
 | libcxx/include/__ranges/size.h |
 | libcxx/test/std/ranges/range.access/range.prim/ssize.pass.cpp |
 | libcxx/include/ranges |
 | libcxx/test/std/ranges/range.access/range.prim/size.pass.cpp |
Commit
3a62d4fde88544125ce9ceff990db108ee91148a
by bradFix typo, arvm7 -> armv7
|
 | lldb/tools/driver/Driver.cpp |
 | lldb/docs/man/lldb.rst |
Commit
72cefd50e552ce4e44f98d44779b326191204143
by llvmgnsyncbot[gn build] Port 600686d75f55
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
35ecfda01ccd19e1222c065056f68bbd2575e4ac
by medismail.bennani[lldb/Symbol] Fix column breakpoint `move_to_nearest_code` match
This patch fixes the column symbol resolution when creating a breakpoint with the `move_to_nearest_code` flag set.
In order to achieve this, the patch adds column information handling in the `LineTable`'s `LineEntry` finder. After experimenting a little, it turns out the most natural approach in case of an inaccurate column match, is to move backward and match the previous `LineEntry` rather than going forward like we do with simple line breakpoints.
The patch also reflows the function to reduce code duplication.
Finally, it updates the `BreakpointResolver` heuristic to align it with the `LineTable` method.
rdar://73218201
Differential Revision: https://reviews.llvm.org/D101221
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/main.c |
 | lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/main.cpp |
 | lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py |
 | lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/Makefile |
 | lldb/include/lldb/Symbol/LineTable.h |
 | lldb/source/Symbol/LineTable.cpp |
 | lldb/source/Breakpoint/BreakpointResolver.cpp |