+FunctionPass *createLowerSelectPass(bool OnlyFP = false);
+
+//===----------------------------------------------------------------------===//
+// This pass converts PackedType operations into low-level scalar operations.
+//
+FunctionPass *createLowerPackedPass();
+
+//===----------------------------------------------------------------------===//
+// This pass converts invoke and unwind instructions to use sjlj exception
+// handling mechanisms. Note that after this pass runs the CFG is not entirely
+// accurate (exceptional control flow edges are not correct anymore) so only
+// very simple things should be done after the lowerinvoke pass has run (like
+// generation of native code). This should *NOT* be used as a general purpose
+// "my LLVM-to-LLVM pass doesn't support the invoke instruction yet" lowering
+// pass.
+//
+FunctionPass *createLowerInvokePass();
+extern const PassInfo *LowerInvokePassID;
+
+
+//===----------------------------------------------------------------------===//
+/// createLowerGCPass - This function returns an instance of the "lowergc"
+/// pass, which lowers garbage collection intrinsics to normal LLVM code.
+///
+FunctionPass *createLowerGCPass();
+
+//===----------------------------------------------------------------------===//
+// Returns a pass which converts all instances of ConstantExpression
+// into regular LLVM instructions.
+FunctionPass* createLowerConstantExpressionsPass();
+
+//===----------------------------------------------------------------------===//
+// This pass reorders basic blocks in order to increase the number of fall-
+// through conditional branches.
+FunctionPass *createBlockPlacementPass();
+
+//===----------------------------------------------------------------------===//
+// This pass does partial redundancy elimination.
+FunctionPass *createPREPass();
+
+} // End llvm namespace