- Expose passinfo from BreakCriticalEdges pass so that it may be "Required"
by other passes. Make BCE pass be in anonymous namespace now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3907 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Scalar/BreakCriticalEdges.cpp b/lib/Transforms/Scalar/BreakCriticalEdges.cpp
index 2222a04..bba65ef 100644
--- a/lib/Transforms/Scalar/BreakCriticalEdges.cpp
+++ b/lib/Transforms/Scalar/BreakCriticalEdges.cpp
@@ -15,21 +15,24 @@
#include "llvm/InstrTypes.h"
#include "Support/StatisticReporter.h"
-static Statistic<> NumBroken("break-crit-edges\t- Number of blocks inserted");
+namespace {
+ Statistic<> NumBroken("break-crit-edges\t- Number of blocks inserted");
-class BreakCriticalEdges : public FunctionPass {
-public:
- virtual bool runOnFunction(Function &F);
+ struct BreakCriticalEdges : public FunctionPass {
+ virtual bool runOnFunction(Function &F);
+
+ virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+ AU.addPreserved<DominatorSet>();
+ AU.addPreserved<ImmediateDominators>();
+ AU.addPreserved<DominatorTree>();
+ }
+ };
- virtual void getAnalysisUsage(AnalysisUsage &AU) const {
- AU.addPreserved<DominatorSet>();
- AU.addPreserved<ImmediateDominators>();
- AU.addPreserved<DominatorTree>();
- }
-};
+ RegisterOpt<BreakCriticalEdges> X("break-crit-edges",
+ "Break critical edges in CFG");
+}
-static RegisterOpt<BreakCriticalEdges> X("break-crit-edges",
- "Break critical edges in CFG");
+const PassInfo *BreakCriticalEdgesID = X.getPassInfo();
Pass *createBreakCriticalEdgesPass() { return new BreakCriticalEdges(); }
diff --git a/lib/Transforms/Utils/BreakCriticalEdges.cpp b/lib/Transforms/Utils/BreakCriticalEdges.cpp
index 2222a04..bba65ef 100644
--- a/lib/Transforms/Utils/BreakCriticalEdges.cpp
+++ b/lib/Transforms/Utils/BreakCriticalEdges.cpp
@@ -15,21 +15,24 @@
#include "llvm/InstrTypes.h"
#include "Support/StatisticReporter.h"
-static Statistic<> NumBroken("break-crit-edges\t- Number of blocks inserted");
+namespace {
+ Statistic<> NumBroken("break-crit-edges\t- Number of blocks inserted");
-class BreakCriticalEdges : public FunctionPass {
-public:
- virtual bool runOnFunction(Function &F);
+ struct BreakCriticalEdges : public FunctionPass {
+ virtual bool runOnFunction(Function &F);
+
+ virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+ AU.addPreserved<DominatorSet>();
+ AU.addPreserved<ImmediateDominators>();
+ AU.addPreserved<DominatorTree>();
+ }
+ };
- virtual void getAnalysisUsage(AnalysisUsage &AU) const {
- AU.addPreserved<DominatorSet>();
- AU.addPreserved<ImmediateDominators>();
- AU.addPreserved<DominatorTree>();
- }
-};
+ RegisterOpt<BreakCriticalEdges> X("break-crit-edges",
+ "Break critical edges in CFG");
+}
-static RegisterOpt<BreakCriticalEdges> X("break-crit-edges",
- "Break critical edges in CFG");
+const PassInfo *BreakCriticalEdgesID = X.getPassInfo();
Pass *createBreakCriticalEdgesPass() { return new BreakCriticalEdges(); }