//===-- Passes.h - Target independent code generation passes ----*- C++ -*-===//
-//
+//
// The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and is distributed under
// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
+//
//===----------------------------------------------------------------------===//
//
// This file defines interfaces to access the target independent code generation
/// last LLVM modifying pass to clean up blocks that are not reachable from
/// the entry block.
FunctionPass *createUnreachableBlockEliminationPass();
-
+
/// MachineFunctionPrinter pass - This pass prints out the machine function to
/// standard error, as a debugging tool.
FunctionPass *createMachineFunctionPrinterPass(std::ostream *OS,
/// LocalRegisterAllocation Pass - This pass register allocates the input code
/// a basic block at a time, yielding code better than the simple register
/// allocator, but not as good as a global allocator.
- ///
+ ///
FunctionPass *createLocalRegisterAllocator();
-
+
/// LinearScanRegisterAllocation Pass - This pass implements the linear scan
/// register allocation algorithm, a global register allocator.
///
FunctionPass *createLinearScanRegisterAllocator();
- /// IterativeScanRegisterAllocation Pass - This pass implements the iterative
- /// scan register allocation algorithm, a global register allocator.
- ///
- FunctionPass *createIterativeScanRegisterAllocator();
-
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
/// and eliminates abstract frame references.
///
/// branches.
FunctionPass *createBranchFoldingPass();
+ /// 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();
+
/// MachineCodeDeletion Pass - This pass deletes all of the machine code for
/// the current function, which should happen after the function has been
/// emitted to a .s file or to memory.
FunctionPass *createMachineCodeDeleter();
-
+
/// getRegisterAllocator - This creates an instance of the register allocator
/// for the Sparc.
FunctionPass *getRegisterAllocator(TargetMachine &T);
//createModuloSchedulingPass - Creates the Swing Modulo Scheduling Pass
FunctionPass *createModuloSchedulingPass(TargetMachine & targ);
+ //createModuloSchedulingPass - Creates the Swing Modulo Scheduling Pass
+ FunctionPass *createModuloSchedulingSBPass(TargetMachine & targ);
+
} // End llvm namespace
#endif