The LLVMipo library no longer depends on the Scalar component. The shared functions between IPSCCP and SCCP have been moved under Utils, in the SCCPSolver.
This is preliminary work for D126455, in order to break cyclic dependecy of LLVM libraries.
Paths
| Differential D138654
[IPSCCP] Move the IPSCCP run function under the IPO directory. ClosedPublic Authored by labrinea on Nov 24 2022, 4:15 AM.
Details Summary The LLVMipo library no longer depends on the Scalar component. The shared functions between IPSCCP and SCCP have been moved under Utils, in the SCCPSolver. This is preliminary work for D126455, in order to break cyclic dependecy of LLVM libraries.
Diff Detail
Event Timeline
labrinea mentioned this in D126455: [FuncSpec] Make the Function Specializer part of the IPSCCP pass..Nov 24 2022, 6:17 AM labrinea added a child revision: D126455: [FuncSpec] Make the Function Specializer part of the IPSCCP pass.. This revision is now accepted and ready to land.Nov 28 2022, 2:24 AM This revision was landed with ongoing or failed builds.Dec 8 2022, 4:23 AM Closed by commit rG42c2dc401742: [IPSCCP] Move the IPSCCP run function under the IPO directory. (authored by labrinea). · Explain Why This revision was automatically updated to reflect the committed changes. Comment Actions The previous commit regressed some buildbots: undefined reference to `llvm::createBitTrackingDCEPass()' undefined reference to `llvm::createAlignmentFromAssumptionsPass()' undefined reference to `llvm::createLoopUnrollPass(int, bool, bool, int, int, int, int, int, int)' undefined reference to `llvm::createLICMPass(unsigned int, unsigned int, bool)' undefined reference to `llvm::createWarnMissedTransformationsPass()' undefined reference to `llvm::createAlignmentFromAssumptionsPass()' undefined reference to `llvm::createCallSiteSplittingPass()' undefined reference to `llvm::createCFGSimplificationPass(llvm::SimplifyCFGOptions, std::function<bool (llvm::Function const&)>)' undefined reference to `llvm::createFloat2IntPass()' undefined reference to `llvm::createLowerConstantIntrinsicsPass()' undefined reference to `llvm::createLoopRotatePass(int, bool)' undefined reference to `llvm::createLoopDistributePass()' undefined reference to `llvm::createLoopSinkPass()' undefined reference to `llvm::createInstSimplifyLegacyPass()' undefined reference to `llvm::createDivRemPairsPass()' undefined reference to `llvm::createCFGSimplificationPass(llvm::SimplifyCFGOptions, std::function<bool (llvm::Function const&)>)' undefined reference to `llvm::SetLicmMssaOptCap' undefined reference to `llvm::SetLicmMssaNoAccForPromotionCap' undefined reference to `llvm::ForgetSCEVInLoopUnroll' This is fixed by reintroducing one of the two occurences of 'Scalar' under the LINK_COMPONENTS. This revision is now accepted and ready to land.Dec 9 2022, 6:21 AM This revision is now accepted and ready to land.Dec 9 2022, 6:24 AM This revision was landed with ongoing or failed builds.Dec 9 2022, 7:05 AM Closed by commit rG9ebaf4fef4aa: [IPSCCP] Move the IPSCCP run function under the IPO directory. (authored by labrinea). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 481639 llvm/include/llvm/Transforms/Scalar/SCCP.h
llvm/include/llvm/Transforms/Utils/SCCPSolver.h
llvm/lib/Transforms/IPO/CMakeLists.txt
llvm/lib/Transforms/IPO/FunctionSpecialization.cpp
llvm/lib/Transforms/IPO/SCCP.cpp
llvm/lib/Transforms/Scalar/SCCP.cpp
llvm/lib/Transforms/Utils/SCCPSolver.cpp
llvm/utils/gn/secondary/llvm/lib/Transforms/IPO/BUILD.gn
|
Since this is now still here, doesn't this render "The LLVMipo library no longer depends on the Scalar component." incorrect?