llvm-6502/include/llvm/CodeGen/Passes.h
Chris Lattner db00065fc8 Add new files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5259 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 01:01:31 +00:00

39 lines
1.3 KiB
C++

//===-- Passes.h - Target independant code generation passes ----*- C++ -*-===//
//
// This file defines interfaces to access the target independant code generation
// passes provided by the LLVM backend.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_PASSES_H
#define LLVM_CODEGEN_PASSES_H
class Pass;
class PassInfo;
// PHIElimination pass - This pass eliminates machine instruction PHI nodes by
// inserting copy instructions. This destroys SSA information, but is the
// desired input for some register allocators. This pass is "required" by these
// register allocator like this: AU.addRequiredID(PHIEliminationID);
//
extern const PassInfo *PHIEliminationID;
/// SimpleRegisterAllocation Pass - This pass converts the input machine code
/// from SSA form to use explicit registers by spilling every register. Wow,
/// great policy huh?
///
Pass *createSimpleRegisterAllocator();
/// 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.
///
Pass *createLocalRegisterAllocator();
/// PrologEpilogCodeInserter Pass - This pass inserts prolog and epilog code,
/// and eliminates abstract frame references.
///
Pass *createPrologEpilogCodeInserter();
#endif