summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/Passes.h
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-02-08 21:22:48 +0000
committerAndrew Trick <atrick@apple.com>2012-02-08 21:22:48 +0000
commit61f1e3db43e556f495b6b9360d2f550291f78471 (patch)
tree884759d64daccd2f8ae8552c9074e547afd94321 /include/llvm/CodeGen/Passes.h
parent1df91b0e54bc62f8fc7a06a4f75220e40aa2dfe0 (diff)
downloadllvm-61f1e3db43e556f495b6b9360d2f550291f78471.tar.gz
llvm-61f1e3db43e556f495b6b9360d2f550291f78471.tar.bz2
llvm-61f1e3db43e556f495b6b9360d2f550291f78471.tar.xz
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
Diffstat (limited to 'include/llvm/CodeGen/Passes.h')
-rw-r--r--include/llvm/CodeGen/Passes.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h
index 7bc93114d6..14dcd2ce19 100644
--- a/include/llvm/CodeGen/Passes.h
+++ b/include/llvm/CodeGen/Passes.h
@@ -42,9 +42,13 @@ protected:
bool Initialized; // Flagged after all passes are configured.
// Target Pass Options
+ // Targets provide a default setting, user flags override.
//
bool DisableVerify;
+ /// Default setting for -enable-tail-merge on this target.
+ bool EnableTailMerge;
+
public:
TargetPassConfig(TargetMachine *tm, PassManagerBase &pm);
// Dummy constructor.
@@ -67,7 +71,10 @@ public:
CodeGenOpt::Level getOptLevel() const { return TM->getOptLevel(); }
- void setDisableVerify(bool disable) { DisableVerify = disable; }
+ void setDisableVerify(bool Disable) { setOpt(DisableVerify, Disable); }
+
+ bool getEnableTailMerge() const { return EnableTailMerge; }
+ void setEnableTailMerge(bool Enable) { setOpt(EnableTailMerge, Enable); }
/// Add common target configurable passes that perform LLVM IR to IR
/// transforms following machine independent optimization.
@@ -118,10 +125,6 @@ protected:
return false;
}
- /// getEnableTailMergeDefault - the default setting for -enable-tail-merge
- /// on this target. User flag overrides.
- virtual bool getEnableTailMergeDefault() const { return true; }
-
/// addPreSched2 - This method may be implemented by targets that want to
/// run passes after prolog-epilog insertion and before the second instruction
/// scheduling pass. This should return true if -print-machineinstrs should
@@ -274,7 +277,7 @@ namespace llvm {
/// optimizations to delete branches to branches, eliminate branches to
/// successor blocks (creating fall throughs), and eliminating branches over
/// branches.
- FunctionPass *createBranchFoldingPass(bool DefaultEnableTailMerge);
+ extern char &BranchFolderPassID;
/// TailDuplicate Pass - Duplicate blocks with unconditional branches
/// into tails of their predecessors.