Mercurial > hg > CbC > CbC_llvm
diff lib/Target/X86/X86.h @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | 1172e4bd9c6f |
children | 3a76565eade5 |
line wrap: on
line diff
--- a/lib/Target/X86/X86.h Fri Nov 25 19:14:25 2016 +0900 +++ b/lib/Target/X86/X86.h Fri Oct 27 17:07:41 2017 +0900 @@ -21,7 +21,10 @@ class FunctionPass; class ImmutablePass; +class InstructionSelector; class PassRegistry; +class X86RegisterBankInfo; +class X86Subtarget; class X86TargetMachine; /// This pass converts a legalized DAG into a X86-specific DAG, ready for @@ -80,13 +83,31 @@ /// the MachineInstr to MC. FunctionPass *createX86ExpandPseudoPass(); +/// This pass converts X86 cmov instructions into branch when profitable. +FunctionPass *createX86CmovConverterPass(); + /// 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(); +/// Return a Machine IR pass that reassigns instruction chains from one domain +/// to another, when profitable. +FunctionPass *createX86DomainReassignmentPass(); + void initializeFixupBWInstPassPass(PassRegistry &); + +/// This pass replaces EVEX encoded of AVX-512 instructiosn by VEX +/// encoding when possible in order to reduce code size. +FunctionPass *createX86EvexToVexInsts(); + +InstructionSelector *createX86InstructionSelector(const X86TargetMachine &TM, + X86Subtarget &, + X86RegisterBankInfo &); + +void initializeEvexToVexInstPassPass(PassRegistry &); + } // End llvm namespace #endif