[all-commits] [llvm/llvm-project] 8b51e5: [NewPM][Inliner] Make inlined calls to functions i...
Timm Bäder via All-commits
all-commits at lists.llvm.org
Tue Mar 8 19:23:36 PST 2022
Branch: refs/heads/release/14.x
Home: https://github.com/llvm/llvm-project
Commit: 8b51e5ee0a2e6a38886e7ededd3267443cb99f1e
https://github.com/llvm/llvm-project/commit/8b51e5ee0a2e6a38886e7ededd3267443cb99f1e
Author: Arthur Eubanks <aeubanks at google.com>
Date: 2022-03-08 (Tue, 08 Mar 2022)
Changed paths:
M llvm/include/llvm/Analysis/InlineCost.h
M llvm/lib/Analysis/InlineCost.cpp
M llvm/lib/Transforms/IPO/Inliner.cpp
M llvm/test/Transforms/Inline/inline-cost-attributes.ll
A llvm/test/Transforms/Inline/mut-rec-scc-2.ll
A llvm/test/Transforms/Inline/mut-rec-scc.ll
Log Message:
-----------
[NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive
Introduce a new attribute "function-inline-cost-multiplier" which
multiplies the inline cost of a call site (or all calls to a callee) by
the multiplier.
When processing the list of calls created by inlining, check each call
to see if the new call's callee is in the same SCC as the original
callee. If so, set the "function-inline-cost-multiplier" attribute of
the new call site to double the original call site's attribute value.
This does not happen when the original call site is intra-SCC.
This is an alternative to D120584, which marks the call sites as
noinline.
Hopefully fixes PR45253.
Reviewed By: davidxl
Differential Revision: https://reviews.llvm.org/D121084
(cherry picked from commit 53e5e586709a329370ea268a8e8191b16fd641b7)
Commit: da3953fb0315c0e65cc12479f3cd56a1dad7bc3f
https://github.com/llvm/llvm-project/commit/da3953fb0315c0e65cc12479f3cd56a1dad7bc3f
Author: Andrew Wei <weiwei64 at huawei.com>
Date: 2022-03-08 (Tue, 08 Mar 2022)
Changed paths:
A llvm/test/Transforms/PhaseOrdering/simplifycfg-switch-lowering-vs-correlatedpropagation.ll
Log Message:
-----------
[NFC][PhaseOrdering] Add some tests from D119839
Based on original tests from D119839.
See https://github.com/llvm/llvm-project/issues/53853
Commit: ba9ff030d302910e0d2155536558f71da98d5a5a
https://github.com/llvm/llvm-project/commit/ba9ff030d302910e0d2155536558f71da98d5a5a
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2022-03-08 (Tue, 08 Mar 2022)
Changed paths:
M llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassBuilderPipelines.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
M llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Other/new-pm-print-pipeline.ll
M llvm/test/Transforms/Coroutines/coro-catchswitch-cleanuppad.ll
M llvm/test/Transforms/LoopUnroll/ARM/upperbound.ll
M llvm/test/Transforms/PhaseOrdering/simplifycfg-switch-lowering-vs-correlatedpropagation.ll
M llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
M llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
M llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-no-new-successors.ll
M llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll
M llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
M llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll
M llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
M llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll
M llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
M llvm/test/Transforms/SimplifyCFG/switch_create.ll
Log Message:
-----------
[SimplifyCFG][PhaseOrdering] Defer lowering switch into an integer range comparison and branch until after at least the IPSCCP
That transformation is lossy, as discussed in
https://github.com/llvm/llvm-project/issues/53853
and https://github.com/rust-lang/rust/issues/85133#issuecomment-904185574
This is an alternative to D119839,
which would add a limited IPSCCP into SimplifyCFG.
Unlike lowering switch to lookup, we still want this transformation
to happen relatively early, but after giving a chance for the things
like CVP to do their thing. It seems like deferring it just until
the IPSCCP is enough for the tests at hand, but perhaps we need to
be more aggressive and disable it until CVP.
Fixes https://github.com/llvm/llvm-project/issues/53853
Refs. https://github.com/rust-lang/rust/issues/85133
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D119854
Commit: d843bde69aab7fbb3efff34229e8876b1ce80a5b
https://github.com/llvm/llvm-project/commit/d843bde69aab7fbb3efff34229e8876b1ce80a5b
Author: Timm Bäder <tbaeder at redhat.com>
Date: 2022-03-08 (Tue, 08 Mar 2022)
Changed paths:
M clang/lib/Driver/ToolChains/PPCLinux.cpp
Log Message:
-----------
[clang][driver] Fix float128 diagnostics with glibc >= 2.32
Fix checking for an unsupported stdlib++.
Differential Revision: https://reviews.llvm.org/D121209
(cherry picked from commit 5b7941ad7c893b4bb019e3c96b760b0f2670ccfc)
Compare: https://github.com/llvm/llvm-project/compare/6a713120502a...d843bde69aab
More information about the All-commits
mailing list