Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4 |
|
#
1991aa6b |
| 30-Aug-2024 |
Mircea Trofin <mtrofin@google.com> |
Reapply "[nfc][mlgo] Incrementally update DominatorTreeAnalysis in FunctionPropertiesAnalysis (#104867) (#106309)
Reverts c992690179eb5de6efe47d5c8f3a23f2302723f2.
The problem is that if there is
Reapply "[nfc][mlgo] Incrementally update DominatorTreeAnalysis in FunctionPropertiesAnalysis (#104867) (#106309)
Reverts c992690179eb5de6efe47d5c8f3a23f2302723f2.
The problem is that if there is a sequence "{delete A->B} {delete A->B}
{insert A->B}" the net result is "{delete A->B}", which is not what we
want.
Duplicate successors may happen in cases like switch statements (as
shown in the unit test).
The second problem was that in `invoke` cases, some edges we speculate may get deleted don't, but are also not reachable from the inlined call site's basic block. We just need to check which edges are actually not present anymore.
The fix is to sanitize the list of deletes, just like we do for inserts.
show more ...
|
Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
9c5a5a42 |
| 22-Oct-2023 |
Kazu Hirata <kazu@google.com> |
[llvm] Stop including llvm/ADT/iterator_range.h (NFC)
Identified with misc-include-cleaner.
|
Revision tags: llvmorg-17.0.3 |
|
#
2d854dd3 |
| 11-Oct-2023 |
Fangrui Song <i@maskray.me> |
Move global namespace cl::opt inside llvm:: or internalize them
|
Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4 |
|
#
aad3641e |
| 23-Aug-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
[FunctionPropertiesAnalysis] Add CFG and call properties
This patch adds in a couple more properties related to call instructions and the CFG within the function that should expose a little bit more
[FunctionPropertiesAnalysis] Add CFG and call properties
This patch adds in a couple more properties related to call instructions and the CFG within the function that should expose a little bit more about the characteristics of the function.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D158681
show more ...
|
Revision tags: llvmorg-17.0.0-rc3 |
|
#
b8f191e0 |
| 15-Aug-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
[FunctionPropertiesAnalysis] Add operand type counts
This patch adds operand type counts to the detailed function properties analysis. This is intended to enable more interesting and detailed compar
[FunctionPropertiesAnalysis] Add operand type counts
This patch adds operand type counts to the detailed function properties analysis. This is intended to enable more interesting and detailed comparisons across different languages on specific metrics (like usage of inline assembly or global values).
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D158018
show more ...
|
Revision tags: llvmorg-17.0.0-rc2 |
|
#
fe6bb84c |
| 08-Aug-2023 |
Aiden Grossman <agrossman154@yahoo.com> |
[FunctionPropertiesAnalysis] Add detailed analysis
This patch adds more detailed function properties gated behind a command line flag for use primarily in experimentation and gathering statistics on
[FunctionPropertiesAnalysis] Add detailed analysis
This patch adds more detailed function properties gated behind a command line flag for use primarily in experimentation and gathering statistics on the functions in a module or project. The runtime cost should be minimal as the computation is only done when the flag is set. There will be a slight memory overhead when the ML inliner is enabled, but it should be fairly small at a handful of bytes per function.
This is an adapted form of https://reviews.llvm.org/D109661.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D157358
show more ...
|
Revision tags: llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5 |
|
#
01c5ec3d |
| 17-May-2023 |
Mircea Trofin <mtrofin@google.com> |
[NFC] Surface the validation of FunctionPropertiesAnalysis
Avoids relying on `assert` for some of the validation.
Differential Revision: https://reviews.llvm.org/D150827
|
Revision tags: llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
a19ae77d |
| 12-Dec-2022 |
Vasileios Porpodas <vporpodas@google.com> |
[IR][NFC] Adds Function::insertBasicBlockAt() to replace things like F->getBasicBlockList().insert()
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Di
[IR][NFC] Adds Function::insertBasicBlockAt() to replace things like F->getBasicBlockList().insert()
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Differential Revision: https://reviews.llvm.org/D139906
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6 |
|
#
3f8e4169 |
| 15-Jun-2022 |
Mircea Trofin <mtrofin@google.com> |
[FunctionPropertiesAnalysis] Generalize support for unreachable
Generalized support for subgraphs that get rendered unreachable, for both `call` and `invoke` cases.
Differential Revision: https://r
[FunctionPropertiesAnalysis] Generalize support for unreachable
Generalized support for subgraphs that get rendered unreachable, for both `call` and `invoke` cases.
Differential Revision: https://reviews.llvm.org/D127921
show more ...
|
Revision tags: llvmorg-14.0.5 |
|
#
22a1f998 |
| 08-Jun-2022 |
Mircea Trofin <mtrofin@google.com> |
FunctionPropertiesAnalysis: handle callsite BBs that lose edges
There could be successors that were reached before but now are only reachable from elsewhere in the CFG.
Suppose the following diamon
FunctionPropertiesAnalysis: handle callsite BBs that lose edges
There could be successors that were reached before but now are only reachable from elsewhere in the CFG.
Suppose the following diamond CFG (lines are arrows pointing down): A / \ B C \ / D There's a call site in C that is inlined. Upon doing that, it turns out it expands to: call void @llvm.trap() unreachable D isn't reachable from C anymore, but we did discount it when we set up FunctionPropertiesUpdater, so we need to re-include it here.
The patch also updates loop accounting to use LoopInfo rather than traverse BBs.
Differential Revision: https://reviews.llvm.org/D127353
show more ...
|
#
b8c39eb2 |
| 08-Jun-2022 |
Mircea Trofin <mtrofin@google.com> |
Fix FunctionPropertiesAnalysis updating callsite in 1-BB loop
If the callsite is in a single BB loop, we need to exclude the BB from the successor set (in which it'd be a member), because that set f
Fix FunctionPropertiesAnalysis updating callsite in 1-BB loop
If the callsite is in a single BB loop, we need to exclude the BB from the successor set (in which it'd be a member), because that set forms a boundary at which we stop traversing the CFG, when re-ingesting BBs after inlining; but after inlining, the callsite BB's new successors should be visited.
Reviewed By: kazu
Differential Revision: https://reviews.llvm.org/D127178
show more ...
|
Revision tags: llvmorg-14.0.4 |
|
#
f46dd19b |
| 03-May-2022 |
Mircea Trofin <mtrofin@google.com> |
[mlgo] Incrementally update FunctionPropertiesInfo during inlining
Re-computing FunctionPropertiesInfo after each inlining may be very time consuming: in certain cases, e.g. large caller with lots o
[mlgo] Incrementally update FunctionPropertiesInfo during inlining
Re-computing FunctionPropertiesInfo after each inlining may be very time consuming: in certain cases, e.g. large caller with lots of callsites, and when the overall IR doesn't increase (thus not tripping a size bloat threshold).
This patch addresses this by incrementally updating FunctionPropertiesInfo.
Differential Revision: https://reviews.llvm.org/D125841
show more ...
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
#
71c3a551 |
| 28-Feb-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup includes: LLVMAnalysis
Number of lines output by preprocessor: before: 1065940348 after: 1065307662
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Diff
Cleanup includes: LLVMAnalysis
Number of lines output by preprocessor: before: 1065940348 after: 1065307662
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D120659
show more ...
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
#
06283661 |
| 23-Jul-2020 |
Tarindu Jayatilaka <tarindujayatilaka@gmail.com> |
Add new function properties to FunctionPropertiesAnalysis
Added LoadInstCount, StoreInstCount, MaxLoopDepth, LoopCount
Reviewed By: jdoerfert, mtrofin
Differential Revision: https://reviews.llvm
Add new function properties to FunctionPropertiesAnalysis
Added LoadInstCount, StoreInstCount, MaxLoopDepth, LoopCount
Reviewed By: jdoerfert, mtrofin
Differential Revision: https://reviews.llvm.org/D82283
show more ...
|
#
ee6f0e10 |
| 23-Jul-2020 |
Tarindu Jayatilaka <tarindujayatilaka@gmail.com> |
Add a Printer to the FunctionPropertiesAnalysis
A printer pass and a lit test case was added.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D82523
|
#
2f56046d |
| 23-Jul-2020 |
Tarindu Jayatilaka <tarindujayatilaka@gmail.com> |
Refactor FunctionPropertiesAnalysis
this separates `analyze` logic from `FunctionPropertiesAnalysis`
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D82521
|
#
418121c3 |
| 22-Jul-2020 |
Tarindu Jayatilaka <tarindujayatilaka@gmail.com> |
Reapply "Rename InlineFeatureAnalysis to FunctionPropertiesAnalysis"
(This reverts commit a5e0194709c40212694370e0ea789a1ca14548b5, and corrects author).
Rename the pass to be able to extend it to
Reapply "Rename InlineFeatureAnalysis to FunctionPropertiesAnalysis"
(This reverts commit a5e0194709c40212694370e0ea789a1ca14548b5, and corrects author).
Rename the pass to be able to extend it to function properties other than inliner features.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D82044
show more ...
|
#
44a6bda1 |
| 22-Jul-2020 |
Mircea Trofin <mtrofin@google.com> |
Rename InlineFeatureAnalysis to FunctionPropertiesAnalysis
Rename the pass to be able to extend it to function properties other than inliner features.
Reviewed By: mtrofin
Differential Revision:
Rename InlineFeatureAnalysis to FunctionPropertiesAnalysis
Rename the pass to be able to extend it to function properties other than inliner features.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D82044
show more ...
|