Expose passinfo from BreakCriticalEdges pass so that it may be "Required" by
authorChris Lattner <sabre@nondot.org>
Tue, 24 Sep 2002 15:42:27 +0000 (15:42 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 24 Sep 2002 15:42:27 +0000 (15:42 +0000)
other passes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3906 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/Scalar.h

index d952ead2d718453464f8de4f21bb136b4fe4e036..188e3e298f3de4855d626cfb6e945e42534ceb63 100644 (file)
@@ -10,8 +10,8 @@
 
 class Pass;
 class TargetData;
-class BasicBlock;
 class GetElementPtrInst;
+class PassInfo;
 
 //===----------------------------------------------------------------------===//
 //
@@ -162,7 +162,7 @@ Pass *createReassociatePass();
 //
 // This pass eliminates correlated conditions, such as these:
 //  if (X == 0)
-//    if (X > 2)     // Known false
+//    if (X > 2) ;   // Known false
 //    else
 //      Y = X * Z;   // = 0
 //
@@ -179,12 +179,15 @@ Pass *createCFGSimplificationPass();
 //
 // BreakCriticalEdges pass - Break all of the critical edges in the CFG by
 // inserting a dummy basic block.  This pass may be "required" by passes that
-// cannot deal with critical edges.  For this usage, the structure type is
-// forward declared.  This pass obviously invalidates the CFG, but can update
-// forward dominator (set, immediate dominators, and tree) information.
+// cannot deal with critical edges.  For this usage, a pass must call:
+//
+//   AU.addRequiredID(BreakCriticalEdgesID);
+//
+// This pass obviously invalidates the CFG, but can update forward dominator
+// (set, immediate dominators, and tree) information.
 //
-class BreakCriticalEdges;
 Pass *createBreakCriticalEdgesPass();
+extern const PassInfo *BreakCriticalEdgesID;
 
 //===----------------------------------------------------------------------===//
 // These two passes convert malloc and free instructions to and from %malloc &