LLVM  6.0.0svn
Enumerations | Functions
llvm::X86 Namespace Reference

Define some predicates that are used for node matching. More...

Enumerations

enum  ProcessorVendors : unsigned { VENDOR_DUMMY, VENDOR_OTHER }
 
enum  ProcessorTypes : unsigned { CPU_TYPE_DUMMY, CPU_TYPE_MAX }
 
enum  ProcessorSubtypes : unsigned { CPU_SUBTYPE_DUMMY, CPU_SUBTYPE_MAX }
 
enum  {
  BX_SI = 500, BX_DI = 501, BP_SI = 502, BP_DI = 503,
  sib = 504, sib64 = 505
}
 
enum  {
  AddrBaseReg = 0, AddrScaleAmt = 1, AddrIndexReg = 2, AddrDisp = 3,
  AddrSegmentReg = 4, AddrNumOperands = 5
}
 
enum  STATIC_ROUNDING {
  TO_NEAREST_INT = 0, TO_NEG_INF = 1, TO_POS_INF = 2, TO_ZERO = 3,
  CUR_DIRECTION = 4
}
 AVX512 static rounding constants. More...
 
enum  IPREFIXES {
  IP_NO_PREFIX = 0, IP_HAS_OP_SIZE = 1, IP_HAS_AD_SIZE = 2, IP_HAS_REPEAT_NE = 4,
  IP_HAS_REPEAT = 8, IP_HAS_LOCK = 16
}
 The constants to describe instr prefixes if there are. More...
 
enum  Fixups {
  reloc_riprel_4byte = FirstTargetFixupKind, reloc_riprel_4byte_movq_load, reloc_riprel_4byte_relax, reloc_riprel_4byte_relax_rex,
  reloc_signed_4byte, reloc_signed_4byte_relax, reloc_global_offset_table, reloc_global_offset_table8,
  LastTargetFixupKind, NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
}
 
enum  CondCode {
  COND_A = 0, COND_AE = 1, COND_B = 2, COND_BE = 3,
  COND_E = 4, COND_G = 5, COND_GE = 6, COND_L = 7,
  COND_LE = 8, COND_NE = 9, COND_NO = 10, COND_NP = 11,
  COND_NS = 12, COND_O = 13, COND_P = 14, COND_S = 15,
  LAST_VALID_COND = COND_S, COND_NE_OR_P, COND_E_AND_NP, COND_INVALID
}
 

Functions

unsigned GetCondBranchFromCond (CondCode CC)
 
std::pair< CondCode, boolgetX86ConditionCode (CmpInst::Predicate Predicate)
 Return a pair of condition code for the given predicate and whether the instruction operands should be swaped to match the condition code. More...
 
unsigned getSETFromCond (CondCode CC, bool HasMemoryOperand=false)
 Return a set opcode for the given condition and whether it has a memory operand. More...
 
unsigned getCMovFromCond (CondCode CC, unsigned RegBytes, bool HasMemoryOperand=false)
 Return a cmov opcode for the given condition, register size in bytes, and operand type. More...
 
CondCode getCondFromCMovOpc (unsigned Opc)
 Return condition code of a CMov opcode. More...
 
CondCode GetOppositeBranchCondition (CondCode CC)
 GetOppositeBranchCondition - Return the inverse of the specified cond, e.g. More...
 
bool isZeroNode (SDValue Elt)
 Returns true if Elt is a constant zero or floating point constant +0.0. More...
 
bool isOffsetSuitableForCodeModel (int64_t Offset, CodeModel::Model M, bool hasSymbolicDisplacement=true)
 Returns true of the given offset can be fit into displacement field of the instruction. More...
 
bool isCalleePop (CallingConv::ID CallingConv, bool is64Bit, bool IsVarArg, bool GuaranteeTCO)
 Determines whether the callee is required to pop its own arguments. More...
 
FastISelcreateFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 

Detailed Description

Define some predicates that are used for node matching.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BX_SI 
BX_DI 
BP_SI 
BP_DI 
sib 
sib64 

Definition at line 114 of file X86Disassembler.cpp.

◆ anonymous enum

anonymous enum
Enumerator
AddrBaseReg 
AddrScaleAmt 
AddrIndexReg 
AddrDisp 
AddrSegmentReg 

AddrSegmentReg - The operand # of the segment in the memory operand.

AddrNumOperands 

AddrNumOperands - Total number of operands in a memory reference.

Definition at line 32 of file X86BaseInfo.h.

◆ CondCode

Enumerator
COND_A 
COND_AE 
COND_B 
COND_BE 
COND_E 
COND_G 
COND_GE 
COND_L 
COND_LE 
COND_NE 
COND_NO 
COND_NP 
COND_NS 
COND_O 
COND_P 
COND_S 
LAST_VALID_COND 
COND_NE_OR_P 
COND_E_AND_NP 
COND_INVALID 

Definition at line 34 of file X86InstrInfo.h.

◆ Fixups

Enumerator
reloc_riprel_4byte 
reloc_riprel_4byte_movq_load 
reloc_riprel_4byte_relax 
reloc_riprel_4byte_relax_rex 
reloc_signed_4byte 
reloc_signed_4byte_relax 
reloc_global_offset_table 
reloc_global_offset_table8 
LastTargetFixupKind 
NumTargetFixupKinds 

Definition at line 17 of file X86FixupKinds.h.

◆ IPREFIXES

The constants to describe instr prefixes if there are.

Enumerator
IP_NO_PREFIX 
IP_HAS_OP_SIZE 
IP_HAS_AD_SIZE 
IP_HAS_REPEAT_NE 
IP_HAS_REPEAT 
IP_HAS_LOCK 

Definition at line 56 of file X86BaseInfo.h.

◆ ProcessorSubtypes

Enumerator
CPU_SUBTYPE_DUMMY 
CPU_SUBTYPE_MAX 

Definition at line 239 of file TargetParser.h.

◆ ProcessorTypes

Enumerator
CPU_TYPE_DUMMY 
CPU_TYPE_MAX 

Definition at line 229 of file TargetParser.h.

◆ ProcessorVendors

Enumerator
VENDOR_DUMMY 
VENDOR_OTHER 

Definition at line 219 of file TargetParser.h.

◆ STATIC_ROUNDING

AVX512 static rounding constants.

These need to match the values in avx512fintrin.h.

Enumerator
TO_NEAREST_INT 
TO_NEG_INF 
TO_POS_INF 
TO_ZERO 
CUR_DIRECTION 

Definition at line 47 of file X86BaseInfo.h.

Function Documentation

◆ createFastISel()

FastISel * llvm::X86::createFastISel ( FunctionLoweringInfo funcInfo,
const TargetLibraryInfo libInfo 
)

◆ getCMovFromCond()

unsigned llvm::X86::getCMovFromCond ( CondCode  CC,
unsigned  RegBytes,
bool  HasMemoryOperand = false 
)

Return a cmov opcode for the given condition, register size in bytes, and operand type.

Definition at line 6013 of file X86InstrInfo.cpp.

References assert(), and llvm_unreachable.

Referenced by llvm::X86InstrInfo::insertSelect(), llvm::X86InstrInfo::optimizeCompareInstr(), and X86ChooseCmpImmediateOpcode().

◆ GetCondBranchFromCond()

unsigned llvm::X86::GetCondBranchFromCond ( X86::CondCode  CC)

◆ getCondFromCMovOpc()

X86::CondCode llvm::X86::getCondFromCMovOpc ( unsigned  Opc)

Return condition code of a CMov opcode.

Definition at line 5827 of file X86InstrInfo.cpp.

References COND_A, COND_AE, COND_B, COND_BE, COND_E, COND_G, COND_GE, COND_INVALID, COND_L, COND_LE, COND_NE, COND_NO, COND_NP, COND_NS, COND_O, COND_P, and COND_S.

Referenced by llvm::X86InstrInfo::optimizeCompareInstr(), and packCmovGroup().

◆ GetOppositeBranchCondition()

X86::CondCode llvm::X86::GetOppositeBranchCondition ( X86::CondCode  CC)

GetOppositeBranchCondition - Return the inverse of the specified cond, e.g.

Return the inverse of the specified condition, e.g.

turning COND_E to COND_NE.

Definition at line 5905 of file X86InstrInfo.cpp.

References COND_A, COND_AE, COND_B, COND_BE, COND_E, COND_E_AND_NP, COND_G, COND_GE, COND_L, COND_LE, COND_NE, COND_NE_OR_P, COND_NO, COND_NP, COND_NS, COND_O, COND_P, COND_S, and llvm_unreachable.

Referenced by checkBoolTestSetCCCombine(), combineCMov(), createPHIsForCMOVsInSinkBB(), foldXor1SetCC(), isXor1OfSetCC(), LowerVSETCC(), and packCmovGroup().

◆ getSETFromCond()

unsigned llvm::X86::getSETFromCond ( CondCode  CC,
bool  HasMemoryOperand = false 
)

Return a set opcode for the given condition and whether it has a memory operand.

Return a set opcode for the given condition and whether it has memory operand.

Definition at line 5987 of file X86InstrInfo.cpp.

References assert(), and LAST_VALID_COND.

Referenced by getLeaOP(), llvm::X86InstrInfo::optimizeCompareInstr(), and X86ChooseCmpImmediateOpcode().

◆ getX86ConditionCode()

std::pair< X86::CondCode, bool > llvm::X86::getX86ConditionCode ( CmpInst::Predicate  Predicate)

◆ isCalleePop()

bool llvm::X86::isCalleePop ( CallingConv::ID  CallingConv,
bool  is64Bit,
bool  IsVarArg,
bool  GuaranteeTCO 
)

Determines whether the callee is required to pop its own arguments.

Callee pop is necessary to support tail calls.

Definition at line 4342 of file X86ISelLowering.cpp.

References is64Bit(), shouldGuaranteeTCO(), llvm::CallingConv::X86_FastCall, llvm::CallingConv::X86_StdCall, llvm::CallingConv::X86_ThisCall, and llvm::CallingConv::X86_VectorCall.

Referenced by computeBytesPoppedByCalleeForSRet(), getMOVL(), isSortedByValueNo(), and MatchingStackOffset().

◆ isOffsetSuitableForCodeModel()

bool llvm::X86::isOffsetSuitableForCodeModel ( int64_t  Offset,
CodeModel::Model  M,
bool  hasSymbolicDisplacement = true 
)

Returns true of the given offset can be fit into displacement field of the instruction.

Definition at line 4310 of file X86ISelLowering.cpp.

References llvm::isInt< 32 >(), llvm::CodeModel::Kernel, and llvm::CodeModel::Small.

Referenced by isDispSafeForFrameIndex(), llvm::X86TargetLowering::isLegalAddressingMode(), and LowerINSERT_SUBVECTOR().

◆ isZeroNode()

bool llvm::X86::isZeroNode ( SDValue  Elt)