LLVM
8.0.1
|
Define some predicates that are used for node matching. More...
Functions | |
unsigned | GetCondBranchFromCond (CondCode CC) |
std::pair< CondCode, bool > | getX86ConditionCode (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 | getCondFromBranchOpc (unsigned Opc) |
CondCode | getCondFromSETOpc (unsigned Opc) |
Return condition code of a SET opcode. 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... | |
unsigned | getVPCMPImmForCond (ISD::CondCode CC) |
Get the VPCMP immediate for the given condition. More... | |
unsigned | getSwappedVPCMPImm (unsigned Imm) |
Get the VPCMP immediate if the opcodes are swapped. More... | |
unsigned | getSwappedVPCOMImm (unsigned Imm) |
Get the VPCOM immediate if the opcodes are swapped. 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... | |
FastISel * | createFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo) |
Define some predicates that are used for node matching.
anonymous enum |
Enumerator | |
---|---|
BX_SI | |
BX_DI | |
BP_SI | |
BP_DI | |
sib | |
sib64 |
Definition at line 114 of file X86Disassembler.cpp.
anonymous enum |
Definition at line 32 of file X86BaseInfo.h.
Enumerator | |
---|---|
AC_EVEX_2_VEX |
Definition at line 34 of file X86InstrInfo.h.
enum llvm::X86::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 41 of file X86InstrInfo.h.
enum llvm::X86::Fixups |
Definition at line 17 of file X86FixupKinds.h.
enum llvm::X86::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 | |
NO_SCHED_INFO | |
IP_HAS_NOTRACK |
Definition at line 56 of file X86BaseInfo.h.
Definition at line 69 of file TargetParser.h.
Enumerator | |
---|---|
CPU_SUBTYPE_DUMMY | |
CPU_SUBTYPE_MAX |
Definition at line 59 of file TargetParser.h.
Enumerator | |
---|---|
CPU_TYPE_DUMMY | |
CPU_TYPE_MAX |
Definition at line 49 of file TargetParser.h.
Enumerator | |
---|---|
VENDOR_DUMMY | |
VENDOR_OTHER |
Definition at line 39 of file TargetParser.h.
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.
FastISel * llvm::X86::createFastISel | ( | FunctionLoweringInfo & | funcInfo, |
const TargetLibraryInfo * | libInfo | ||
) |
Definition at line 4034 of file X86FastISel.cpp.
Referenced by llvm::X86TargetLowering::createFastISel(), llvm::X86TargetLowering::getClearCacheBuiltinName(), and llvm::X86TargetLowering::getMaxSupportedInterleaveFactor().
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 2324 of file X86InstrInfo.cpp.
References assert(), and llvm_unreachable.
Referenced by getRegClassForUnfoldedLoad(), hasVulnerableLoad(), llvm::X86InstrInfo::insertSelect(), isEFLAGSLive(), llvm::X86InstrInfo::optimizeCompareInstr(), and X86ChooseCmpImmediateOpcode().
unsigned llvm::X86::GetCondBranchFromCond | ( | X86::CondCode | CC | ) |
Definition at line 2192 of file X86InstrInfo.cpp.
References 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, and llvm_unreachable.
Referenced by createPHIsForCMOVsInSinkBB(), emitClzero(), getRetOpcode(), packCmovGroup(), and X86ChooseCmpImmediateOpcode().
X86::CondCode llvm::X86::getCondFromBranchOpc | ( | unsigned | Opc | ) |
Definition at line 2092 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 findUncondBrI(), getCondFromOpc(), getFallThroughMBB(), llvm::AVRInstrInfo::getRegisterInfo(), hasVulnerableLoad(), llvm::X86InstrInfo::optimizeCompareInstr(), llvm::X86InstrInfo::removeBranch(), llvm::X86InstrInfo::replaceBranchWithTailCall(), and splitBlock().
X86::CondCode llvm::X86::getCondFromCMovOpc | ( | unsigned | Opc | ) |
Return condition code of a CMov opcode.
Definition at line 2138 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 getCondFromOpc(), llvm::X86InstrInfo::optimizeCompareInstr(), and packCmovGroup().
X86::CondCode llvm::X86::getCondFromSETOpc | ( | unsigned | Opc | ) |
Return condition code of a SET opcode.
Definition at line 2115 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 getCondFromOpc(), and llvm::X86InstrInfo::optimizeCompareInstr().
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 2216 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(), EmitKORTEST(), foldXor1SetCC(), hasVulnerableLoad(), isXor1OfSetCC(), and packCmovGroup().
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 2298 of file X86InstrInfo.cpp.
References assert(), and LAST_VALID_COND.
Referenced by canTurnIntoCOPY(), llvm::X86InstrInfo::optimizeCompareInstr(), and X86ChooseCmpImmediateOpcode().
Get the VPCMP immediate if the opcodes are swapped.
Definition at line 2389 of file X86InstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl().
Get the VPCOM immediate if the opcodes are swapped.
Definition at line 2407 of file X86InstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl().
unsigned llvm::X86::getVPCMPImmForCond | ( | ISD::CondCode | CC | ) |
Get the VPCMP immediate for the given condition.
Definition at line 2372 of file X86InstrInfo.cpp.
References llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
std::pair< X86::CondCode, bool > llvm::X86::getX86ConditionCode | ( | 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.
Definition at line 2259 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_NP, COND_P, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, and LLVM_FALLTHROUGH.
Referenced by canTurnIntoCOPY(), and X86ChooseCmpImmediateOpcode().
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 4630 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().
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 4598 of file X86ISelLowering.cpp.
References llvm::isInt< 32 >(), llvm::CodeModel::Kernel, and llvm::CodeModel::Small.
Referenced by isDispSafeForFrameIndex(), llvm::X86TargetLowering::isLegalAddressingMode(), and LowerEXTRACT_SUBVECTOR().
Returns true if Elt is a constant zero or floating point constant +0.0.
Returns true if Elt is a constant zero or a floating point constant +0.0.
Definition at line 5215 of file X86ISelLowering.cpp.
References llvm::isNullConstant(), and llvm::isNullFPConstant().
Referenced by combineADC(), combineAddOrSubToADCOrSBB(), computeZeroableShuffleElements(), EltsFromConsecutiveLoads(), getFauxShuffleMask(), getMaskNode(), InsertBitToMaskVector(), LowerBUILD_VECTORAsVariablePermute(), LowerBuildVectorv4x32(), LowerSCALAR_TO_VECTOR(), and setTargetShuffleZeroElements().