[llvm] [CodeGen][NPM] Update BranchFolderLegacy make tail merge configurable via flag (PR #135277)
Akshat Oke via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 13 22:51:52 PDT 2025
================
@@ -152,7 +162,8 @@ bool BranchFolderLegacy::runOnMachineFunction(MachineFunction &MF) {
// TailMerge can create jump into if branches that make CFG irreducible for
// HW that requires structurized CFG.
bool EnableTailMerge = !MF.getTarget().requiresStructuredCFG() &&
- PassConfig->getEnableTailMerge();
+ PassConfig->getEnableTailMerge() &&
----------------
optimisan wrote:
I see, so we want to preserve the disabling functionality of the default-added pass and also add another instance of the pass independent of the targetpassconfig option.
To follow through this patch, we can change the `addPass` method to handle pass pointers also:
```diff cpp
- AnalysisID TargetPassConfig::addPass(AnalysisID PassID) {
+ AnalysisID TargetPassConfig::addPass(IdentifyingPassPtr PassPtr) {
+ AnalysisID PassID = PassPtr.isInstance()
+ ? PassID = PassPtr.getInstance()->getPassID()
+ : PassPtr.getID();
IdentifyingPassPtr TargetID = getPassSubstitution(PassID);
IdentifyingPassPtr FinalPtr = overridePass(PassID, TargetID);
...
```
And add the pass in TargetPassConfig:
```diff
- addPass(&BranchFolderPassID);
+ addPass(IdentifyingPassPtr(createBranchFolderPass(getEnableTailMerge())));
```
https://github.com/llvm/llvm-project/pull/135277
More information about the llvm-commits
mailing list