+
+ /// LowerSubregs Pass - This pass lowers subregs to register-register copies
+ /// which yields suboptimal, but correct code if the register allocator
+ /// cannot coalesce all subreg operations during allocation.
+ ///
+ FunctionPass *createLowerSubregsPass();
+
+ /// createPostRAScheduler - under development.
+ FunctionPass *createPostRAScheduler();
+
+ /// BranchFolding Pass - This pass performs machine code CFG based
+ /// optimizations to delete branches to branches, eliminate branches to
+ /// successor blocks (creating fall throughs), and eliminating branches over
+ /// branches.
+ FunctionPass *createBranchFoldingPass(bool DefaultEnableTailMerge);
+
+ /// IfConverter Pass - This pass performs machine code if conversion.
+ FunctionPass *createIfConverterPass();
+
+ /// LoopAligner Pass - This pass aligns loop headers to target specific
+ /// alignment boundary.
+ FunctionPass *createLoopAlignerPass();
+
+ /// DebugLabelFoldingPass - This pass prunes out redundant debug labels. This
+ /// allows a debug emitter to determine if the range of two labels is empty,
+ /// by seeing if the labels map to the same reduced label.
+ FunctionPass *createDebugLabelFoldingPass();