Move pass configuration out of pass constructors: BranchFolderPass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150095 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Trick
2012-02-08 21:22:48 +00:00
parent 1df91b0e54
commit 61f1e3db43
7 changed files with 38 additions and 26 deletions

View File

@@ -78,13 +78,18 @@ public:
}
virtual bool addInstSelector();
virtual bool getEnableTailMergeDefault() const;
virtual bool addPreEmitPass();
};
} // namespace
TargetPassConfig *PPCTargetMachine::createPassConfig(PassManagerBase &PM) {
return new PPCPassConfig(this, PM);
TargetPassConfig *PassConfig = new PPCPassConfig(this, PM);
// Override this for PowerPC. Tail merging happily breaks up instruction issue
// groups, which typically degrades performance.
PassConfig->setEnableTailMerge(false);
return PassConfig;
}
bool PPCPassConfig::addInstSelector() {
@@ -93,10 +98,6 @@ bool PPCPassConfig::addInstSelector() {
return false;
}
/// Override this for PowerPC. Tail merging happily breaks up instruction issue
/// groups, which typically degrades performance.
bool PPCPassConfig::getEnableTailMergeDefault() const { return false; }
bool PPCPassConfig::addPreEmitPass() {
// Must run branch selection immediately preceding the asm printer.
PM.add(createPPCBranchSelectionPass());