diff options
Diffstat (limited to 'lib/Target/X86/X86.h')
-rw-r--r-- | lib/Target/X86/X86.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/X86/X86.h b/lib/Target/X86/X86.h index 01e65b89f480c..23d6c7120a4b5 100644 --- a/lib/Target/X86/X86.h +++ b/lib/Target/X86/X86.h @@ -21,6 +21,7 @@ namespace llvm { class FunctionPass; class ImmutablePass; +class PassRegistry; class X86TargetMachine; /// This pass converts a legalized DAG into a X86-specific DAG, ready for @@ -58,6 +59,12 @@ FunctionPass *createX86FixupLEAs(); /// recalculations. FunctionPass *createX86OptimizeLEAs(); +/// Return a pass that transforms setcc + movzx pairs into xor + setcc. +FunctionPass *createX86FixupSetCC(); + +/// Return a pass that expands WinAlloca pseudo-instructions. +FunctionPass *createX86WinAllocaExpander(); + /// Return a pass that optimizes the code-size of x86 call sequences. This is /// done by replacing esp-relative movs with pushes. FunctionPass *createX86CallFrameOptimization(); @@ -72,6 +79,14 @@ FunctionPass *createX86WinEHStatePass(); /// must run after prologue/epilogue insertion and before lowering /// the MachineInstr to MC. FunctionPass *createX86ExpandPseudoPass(); + +/// Return a Machine IR pass that selectively replaces +/// certain byte and word instructions by equivalent 32 bit instructions, +/// in order to eliminate partial register usage, false dependences on +/// the upper portions of registers, and to save code size. +FunctionPass *createX86FixupBWInsts(); + +void initializeFixupBWInstPassPass(PassRegistry &); } // End llvm namespace #endif |