LLVM 20.0.0git
|
Define some predicates that are used for node matching. More...
Functions | |
CPUKind | parseArchX86 (StringRef CPU, bool Only64Bit=false) |
Parse CPU string into a CPUKind. | |
CPUKind | parseTuneCPU (StringRef CPU, bool Only64Bit=false) |
void | fillValidCPUArchList (SmallVectorImpl< StringRef > &Values, bool Only64Bit=false) |
Provide a list of valid CPU names. | |
void | fillValidTuneCPUList (SmallVectorImpl< StringRef > &Values, bool Only64Bit=false) |
Provide a list of valid -mtune names. | |
ProcessorFeatures | getKeyFeature (CPUKind Kind) |
Get the key feature prioritizing target multiversioning. | |
void | getFeaturesForCPU (StringRef CPU, SmallVectorImpl< StringRef > &Features, bool NeedPlus=false) |
Fill in the features that CPU supports into Features . | |
void | updateImpliedFeatures (StringRef Feature, bool Enabled, StringMap< bool > &Features) |
Set or clear entries in Features that are implied to be enabled/disabled by the provided Feature . | |
char | getCPUDispatchMangling (StringRef Name) |
bool | validateCPUSpecificCPUDispatch (StringRef Name) |
std::array< uint32_t, 4 > | getCpuSupportsMask (ArrayRef< StringRef > FeatureStrs) |
unsigned | getFeaturePriority (ProcessorFeatures Feat) |
FirstMacroFusionInstKind | classifyFirstOpcodeInMacroFusion (unsigned Opcode) |
SecondMacroFusionInstKind | classifySecondCondCodeInMacroFusion (X86::CondCode CC) |
bool | isMacroFused (FirstMacroFusionInstKind FirstKind, SecondMacroFusionInstKind SecondKind) |
EncodingOfSegmentOverridePrefix | getSegmentOverridePrefixForReg (unsigned Reg) |
Given a segment register, return the encoding of the segment override prefix for it. | |
bool | optimizeInstFromVEX3ToVEX2 (MCInst &MI, const MCInstrDesc &Desc) |
bool | optimizeShiftRotateWithImmediateOne (MCInst &MI) |
bool | optimizeVPCMPWithImmediateOneOrSix (MCInst &MI) |
bool | optimizeMOVSX (MCInst &MI) |
bool | optimizeINCDEC (MCInst &MI, bool In64BitMode) |
bool | optimizeMOV (MCInst &MI, bool In64BitMode) |
Simplify things like MOV32rm to MOV32o32a. | |
bool | optimizeToFixedRegisterOrShortImmediateForm (MCInst &MI) |
unsigned | getOpcodeForShortImmediateForm (unsigned Opcode) |
unsigned | getOpcodeForLongImmediateForm (unsigned Opcode) |
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. | |
unsigned | getCMovOpcode (unsigned RegBytes, bool HasMemoryOperand=false, bool HasNDD=false) |
Return a cmov opcode for the given register size in bytes, and operand type. | |
int | getCondSrcNoFromDesc (const MCInstrDesc &MCID) |
Return the source operand # for condition code by MCID . | |
CondCode | getCondFromMI (const MachineInstr &MI) |
Return the condition code of the instruction. | |
CondCode | getCondFromBranch (const MachineInstr &MI) |
CondCode | getCondFromSETCC (const MachineInstr &MI) |
CondCode | getCondFromCMov (const MachineInstr &MI) |
CondCode | getCondFromCFCMov (const MachineInstr &MI) |
CondCode | getCondFromCCMP (const MachineInstr &MI) |
int | getCCMPCondFlagsFromCondCode (CondCode CC) |
unsigned | getNFVariant (unsigned Opc) |
unsigned | getNonNDVariant (unsigned Opc) |
CondCode | GetOppositeBranchCondition (CondCode CC) |
GetOppositeBranchCondition - Return the inverse of the specified cond, e.g. | |
unsigned | getVPCMPImmForCond (ISD::CondCode CC) |
Get the VPCMP immediate for the given condition. | |
unsigned | getSwappedVPCMPImm (unsigned Imm) |
Get the VPCMP immediate if the opcodes are swapped. | |
unsigned | getSwappedVPCOMImm (unsigned Imm) |
Get the VPCOM immediate if the opcodes are swapped. | |
unsigned | getSwappedVCMPImm (unsigned Imm) |
Get the VCMP immediate if the opcodes are swapped. | |
unsigned | getVectorRegisterWidth (const MCOperandInfo &Info) |
Get the width of the vector register operand. | |
bool | isX87Instruction (MachineInstr &MI) |
Check if the instruction is X87 instruction. | |
int | getFirstAddrOperandIdx (const MachineInstr &MI) |
Return the index of the instruction's first address operand, if it has a memory reference, or -1 if it has none. | |
const Constant * | getConstantFromPool (const MachineInstr &MI, unsigned OpNo) |
Find any constant pool entry associated with a specific instruction operand. | |
bool | isConstantSplat (SDValue Op, APInt &SplatVal, bool AllowPartialUndefs=true) |
If Op is a constant whose elements are all the same constant or undefined, return true and return the constant value in SplatVal . | |
bool | isZeroNode (SDValue Elt) |
Returns true if Elt is a constant zero or floating point constant +0.0. | |
bool | isOffsetSuitableForCodeModel (int64_t Offset, CodeModel::Model M, bool hasSymbolicDisplacement) |
Returns true of the given offset can be fit into displacement field of the instruction. | |
bool | isCalleePop (CallingConv::ID CallingConv, bool is64Bit, bool IsVarArg, bool GuaranteeTCO) |
Determines whether the callee is required to pop its own arguments. | |
bool | mayFoldLoad (SDValue Op, const X86Subtarget &Subtarget, bool AssumeSingleUse=false) |
Check if Op is a load operation that could be folded into some other x86 instruction as a memory operand. | |
bool | mayFoldLoadIntoBroadcastFromMem (SDValue Op, MVT EltVT, const X86Subtarget &Subtarget, bool AssumeSingleUse=false) |
Check if Op is a load operation that could be folded into a vector splat instruction as a memory operand. | |
bool | mayFoldIntoStore (SDValue Op) |
Check if Op is a value that could be used to fold a store into some other x86 instruction as a memory operand. | |
bool | mayFoldIntoZeroExtend (SDValue Op) |
Check if Op is an operation that could be folded into a zero extend x86 instruction. | |
bool | isExtendedSwiftAsyncFrameSupported (const X86Subtarget &Subtarget, const MachineFunction &MF) |
True if the target supports the extended frame for async Swift functions. | |
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 1810 of file X86Disassembler.cpp.
anonymous enum |
Enumerator | |
---|---|
AddrBaseReg | |
AddrScaleAmt | |
AddrIndexReg | |
AddrDisp | |
AddrSegmentReg | |
AddrNumOperands |
Definition at line 28 of file X86BaseInfo.h.
anonymous enum |
Enumerator | |
---|---|
MaxShuffleCombineDepth |
Definition at line 39749 of file X86ISelLowering.cpp.
enum llvm::X86::AlignBranchBoundaryKind : uint8_t |
Defines the possible values of the branch boundary alignment mask.
Enumerator | |
---|---|
AlignBranchNone | |
AlignBranchFused | |
AlignBranchJcc | |
AlignBranchJmp | |
AlignBranchCall | |
AlignBranchRet | |
AlignBranchIndirect |
Definition at line 309 of file X86BaseInfo.h.
Enumerator | |
---|---|
AC_EVEX_2_LEGACY | |
AC_EVEX_2_VEX | |
AC_EVEX_2_EVEX |
Definition at line 37 of file X86InstrInfo.h.
enum llvm::X86::CondCode |
Enumerator | |
---|---|
COND_O | |
COND_NO | |
COND_B | |
COND_AE | |
COND_E | |
COND_NE | |
COND_BE | |
COND_A | |
COND_S | |
COND_NS | |
COND_P | |
COND_NP | |
COND_L | |
COND_GE | |
COND_LE | |
COND_G | |
LAST_VALID_COND | |
COND_NE_OR_P | |
COND_E_AND_NP | |
COND_INVALID |
Definition at line 77 of file X86BaseInfo.h.
enum llvm::X86::CPUKind |
Definition at line 67 of file X86TargetParser.h.
enum llvm::X86::EncodingOfSegmentOverridePrefix : uint8_t |
Defines the encoding values for segment override prefix.
Enumerator | |
---|---|
CS_Encoding | |
DS_Encoding | |
ES_Encoding | |
FS_Encoding | |
GS_Encoding | |
SS_Encoding |
Definition at line 320 of file X86BaseInfo.h.
|
strong |
Enumerator | |
---|---|
Test | |
Cmp | |
And | |
AddSub | |
IncDec | |
Invalid |
Definition at line 107 of file X86BaseInfo.h.
enum llvm::X86::Fixups |
Definition at line 16 of file X86FixupKinds.h.
enum llvm::X86::IPREFIXES |
The constants to describe instr prefixes if there are.
Definition at line 51 of file X86BaseInfo.h.
enum llvm::X86::OperandType : unsigned |
Enumerator | |
---|---|
OPERAND_ROUNDING_CONTROL | |
OPERAND_COND_CODE |
Definition at line 69 of file X86BaseInfo.h.
Enumerator | |
---|---|
CPU_FEATURE_MAX |
Definition at line 58 of file X86TargetParser.h.
Enumerator | |
---|---|
CPU_SUBTYPE_DUMMY | |
CPU_SUBTYPE_MAX |
Definition at line 48 of file X86TargetParser.h.
Enumerator | |
---|---|
CPU_TYPE_DUMMY | |
CPU_TYPE_MAX |
Definition at line 38 of file X86TargetParser.h.
Enumerator | |
---|---|
VENDOR_DUMMY | |
VENDOR_OTHER |
Definition at line 28 of file X86TargetParser.h.
Current rounding mode is represented in bits 11:10 of FPSR.
These values are same as corresponding constants for rounding mode used in glibc.
Enumerator | |
---|---|
rmToNearest | |
rmDownward | |
rmUpward | |
rmTowardZero | |
rmMask |
Definition at line 967 of file X86ISelLowering.h.
|
strong |
Enumerator | |
---|---|
AB | |
ELG | |
SPO | |
Invalid |
Definition at line 116 of file X86BaseInfo.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 | |
NO_EXC |
Definition at line 41 of file X86BaseInfo.h.
|
inline |
Definition at line 126 of file X86BaseInfo.h.
References AddSub, And, Cmp, IncDec, Invalid, and Test.
Referenced by classifyFirst(), and isFirstMacroFusibleInst().
|
inline |
Definition at line 258 of file X86BaseInfo.h.
References AB, CC, 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, COND_S, ELG, Invalid, and SPO.
Referenced by classifySecond().
FastISel * llvm::X86::createFastISel | ( | FunctionLoweringInfo & | funcInfo, |
const TargetLibraryInfo * | libInfo | ||
) |
Definition at line 4068 of file X86FastISel.cpp.
Referenced by llvm::X86TargetLowering::createFastISel().
void llvm::X86::fillValidCPUArchList | ( | SmallVectorImpl< StringRef > & | Values, |
bool | Only64Bit = false |
||
) |
Provide a list of valid CPU names.
If Only64Bit
is true, the list will only contain 64-bit capable CPUs.
Definition at line 447 of file X86TargetParser.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), P, and Processors.
void llvm::X86::fillValidTuneCPUList | ( | SmallVectorImpl< StringRef > & | Values, |
bool | Only64Bit = false |
||
) |
Provide a list of valid -mtune names.
Definition at line 455 of file X86TargetParser.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), llvm::is_contained(), NoTuneList, P, and Processors.
int llvm::X86::getCCMPCondFlagsFromCondCode | ( | X86::CondCode | CC | ) |
unsigned llvm::X86::getCMovOpcode | ( | unsigned | RegBytes, |
bool | HasMemoryOperand = false , |
||
bool | HasNDD = false |
||
) |
Return a cmov opcode for the given register size in bytes, and operand type.
Definition at line 3458 of file X86InstrInfo.cpp.
References GET_ND_IF_ENABLED, and llvm_unreachable.
Referenced by llvm::X86InstrInfo::insertSelect().
X86::CondCode llvm::X86::getCondFromBranch | ( | const MachineInstr & | MI | ) |
Definition at line 3196 of file X86InstrInfo.cpp.
References COND_INVALID, getCondFromMI(), and MI.
Referenced by classifySecond(), llvm::X86InstrInfo::removeBranch(), llvm::X86InstrInfo::replaceBranchWithTailCall(), and splitBlock().
X86::CondCode llvm::X86::getCondFromCCMP | ( | const MachineInstr & | MI | ) |
Definition at line 3217 of file X86InstrInfo.cpp.
References COND_INVALID, getCondFromMI(), and MI.
X86::CondCode llvm::X86::getCondFromCFCMov | ( | const MachineInstr & | MI | ) |
Definition at line 3212 of file X86InstrInfo.cpp.
References COND_INVALID, getCondFromMI(), and MI.
X86::CondCode llvm::X86::getCondFromCMov | ( | const MachineInstr & | MI | ) |
Definition at line 3207 of file X86InstrInfo.cpp.
References COND_INVALID, getCondFromMI(), and MI.
Referenced by packCmovGroup().
X86::CondCode llvm::X86::getCondFromMI | ( | const MachineInstr & | MI | ) |
Return the condition code of the instruction.
If the instruction doesn't have a condition code, return X86::COND_INVALID.
Definition at line 3187 of file X86InstrInfo.cpp.
References COND_INVALID, getCondSrcNoFromDesc(), llvm::MCInstrDesc::getNumDefs(), and MI.
Referenced by getCondFromBranch(), getCondFromCCMP(), getCondFromCFCMov(), getCondFromCMov(), getCondFromSETCC(), and llvm::X86InstrInfo::optimizeCompareInstr().
X86::CondCode llvm::X86::getCondFromSETCC | ( | const MachineInstr & | MI | ) |
Definition at line 3201 of file X86InstrInfo.cpp.
References COND_INVALID, getCondFromMI(), and MI.
int llvm::X86::getCondSrcNoFromDesc | ( | const MCInstrDesc & | MCID | ) |
Return the source operand # for condition code by MCID
.
If the instruction doesn't have a condition code, return -1.
Definition at line 3176 of file X86InstrInfo.cpp.
References llvm::MCInstrDesc::getNumDefs(), llvm::MCInstrDesc::getNumOperands(), and llvm::MCInstrDesc::getOpcode().
Referenced by getCondFromMI().
const Constant * llvm::X86::getConstantFromPool | ( | const MachineInstr & | MI, |
unsigned | OpNo | ||
) |
Find any constant pool entry associated with a specific instruction operand.
Definition at line 3659 of file X86InstrInfo.cpp.
References AddrDisp, AddrIndexReg, AddrNumOperands, assert(), llvm::MachineConstantPoolEntry::ConstVal, llvm::MachineOperand::getIndex(), llvm::MachineOperand::getOffset(), llvm::MachineOperand::isCPI(), llvm::MachineConstantPoolEntry::isMachineConstantPoolEntry(), MI, and llvm::MachineConstantPoolEntry::Val.
Referenced by addConstantComments(), printBroadcast(), printExtend(), and printZeroUpperMove().
Definition at line 717 of file X86TargetParser.cpp.
References assert(), llvm::find_if(), I, P, and Processors.
Definition at line 732 of file X86TargetParser.cpp.
References assert().
unsigned llvm::X86::getFeaturePriority | ( | ProcessorFeatures | Feat | ) |
Definition at line 749 of file X86TargetParser.cpp.
References assert(), and llvm_unreachable.
void llvm::X86::getFeaturesForCPU | ( | StringRef | CPU, |
SmallVectorImpl< StringRef > & | Features, | ||
bool | NeedPlus = false |
||
) |
Fill in the features that CPU
supports into Features
.
"+" will be append in front of each feature if NeedPlus is true.
Definition at line 642 of file X86TargetParser.cpp.
References assert(), CPU_FEATURE_MAX, FeatureInfos, llvm::find_if(), getName(), I, P, Processors, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
int llvm::X86::getFirstAddrOperandIdx | ( | const MachineInstr & | MI | ) |
Return the index of the instruction's first address operand, if it has a memory reference, or -1 if it has none.
Unlike X86II::getMemoryOperandNo(), this also works for both pseudo instructions (e.g., TCRETURNmi) as well as real instructions (e.g., JMP64m).
Definition at line 3608 of file X86InstrInfo.cpp.
References AddrNumOperands, assert(), llvm::X86II::getMemoryOperandNo(), llvm::X86II::getOperandBias(), I, llvm::X86II::isPseudo(), MI, llvm::none_of(), and llvm::MCOI::OPERAND_MEMORY.
Referenced by CompressEVEXImpl().
ProcessorFeatures llvm::X86::getKeyFeature | ( | X86::CPUKind | Kind | ) |
Get the key feature prioritizing target multiversioning.
Definition at line 464 of file X86TargetParser.cpp.
References assert(), llvm_unreachable, P, and Processors.
Definition at line 3289 of file X86InstrInfo.cpp.
References getNewOpcFromTable().
Referenced by CompressEVEXImpl(), and getClobberType().
Definition at line 3293 of file X86InstrInfo.cpp.
References getNewOpcFromTable().
Referenced by CompressEVEXImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), and llvm::X86RegisterInfo::getRegAllocationHints().
Definition at line 462 of file X86EncodingOptimization.cpp.
Referenced by getRelaxedOpcode().
Definition at line 451 of file X86EncodingOptimization.cpp.
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 3299 of file X86InstrInfo.cpp.
References CC, 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(), combineAndOrForCcmpCtest(), combineCMov(), combineOr(), combineSubSetcc(), combineX86SubCmpForFlags(), llvm::X86InstrInfo::commuteInstructionImpl(), createPHIsForCMOVsInSinkBB(), and foldXor1SetCC().
|
inline |
Given a segment register, return the encoding of the segment override prefix for it.
Definition at line 332 of file X86BaseInfo.h.
References CS_Encoding, DS_Encoding, ES_Encoding, FS_Encoding, GS_Encoding, llvm_unreachable, Reg, and SS_Encoding.
Get the VCMP immediate if the opcodes are swapped.
Get the VCMP immediate if the operands are swapped.
Definition at line 3555 of file X86InstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl().
Get the VPCMP immediate if the opcodes are swapped.
Get the VPCMP immediate if the operands are swapped.
Definition at line 3501 of file X86InstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl().
Get the VPCOM immediate if the opcodes are swapped.
Get the VPCOM immediate if the operands are swapped.
Definition at line 3528 of file X86InstrInfo.cpp.
References llvm_unreachable.
Referenced by llvm::X86InstrInfo::commuteInstructionImpl().
unsigned llvm::X86::getVectorRegisterWidth | ( | const MCOperandInfo & | Info | ) |
Get the width of the vector register operand.
Definition at line 3574 of file X86InstrInfo.cpp.
References Info, and llvm_unreachable.
Referenced by addConstantComments(), and printZeroExtend().
unsigned llvm::X86::getVPCMPImmForCond | ( | ISD::CondCode | CC | ) |
Get the VPCMP immediate for the given condition.
Definition at line 3477 of file X86InstrInfo.cpp.
References CC, 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 3372 of file X86InstrInfo.cpp.
References CC, 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, and llvm::CmpInst::ICMP_ULT.
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 2932 of file X86ISelLoweringCall.cpp.
References is64Bit(), shouldGuaranteeTCO(), llvm::CallingConv::X86_FastCall, llvm::CallingConv::X86_StdCall, llvm::CallingConv::X86_ThisCall, and llvm::CallingConv::X86_VectorCall.
If Op is a constant whose elements are all the same constant or undefined, return true and return the constant value in SplatVal
.
If we have undef bits that don't cover an entire element, we treat these as zero if AllowPartialUndefs is set, else we fail and return false.
Definition at line 5065 of file X86ISelLowering.cpp.
References getTargetConstantBitsFromNode(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by combineAndMaskToShift(), LowerFunnelShift(), LowerRotate(), and LowerShiftByScalarImmediate().
bool llvm::X86::isExtendedSwiftAsyncFrameSupported | ( | const X86Subtarget & | Subtarget, |
const MachineFunction & | MF | ||
) |
True if the target supports the extended frame for async Swift functions.
Definition at line 26793 of file X86ISelLowering.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), and llvm::MCAsmInfo::usesWindowsCFI().
Referenced by LowerINTRINSIC_W_CHAIN().
|
inline |
FirstKind | kind of the first instruction in macro fusion. |
SecondKind | kind of the second instruction in macro fusion. |
Definition at line 290 of file X86BaseInfo.h.
References AB, AddSub, And, Cmp, ELG, IncDec, Invalid, llvm_unreachable, and Test.
Referenced by shouldScheduleAdjacent().
bool llvm::X86::isOffsetSuitableForCodeModel | ( | int64_t | Offset, |
CodeModel::Model | M, | ||
bool | hasSymbolicDisplacement | ||
) |
Returns true of the given offset can be fit into displacement field of the instruction.
Definition at line 2772 of file X86ISelLowering.cpp.
References llvm::CodeModel::Kernel, llvm::CodeModel::Large, and llvm::Offset.
Referenced by llvm::X86TargetLowering::isLegalAddressingMode().
bool llvm::X86::isX87Instruction | ( | MachineInstr & | MI | ) |
Check if the instruction is X87 instruction.
check if the instruction is X87 instruction
Definition at line 3593 of file X86InstrInfo.cpp.
References isX87Reg(), and MI.
Referenced by getNextFPInstruction().
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 3781 of file X86ISelLowering.cpp.
References llvm::isNullConstant(), and llvm::isNullFPConstant().
Referenced by combineAdd(), combineAddOrSubToADCOrSBB(), combineSub(), combineX86CloadCstore(), computeZeroableShuffleElements(), EltsFromConsecutiveLoads(), getFauxShuffleMask(), getMaskNode(), getTargetShuffleAndZeroables(), LowerBuildVectorv4x32(), and LowerSCALAR_TO_VECTOR().
Check if Op is a value that could be used to fold a store into some other x86 instruction as a memory operand.
Ex: pextrb $0, xmm0, (rdi).
Definition at line 2677 of file X86ISelLowering.cpp.
References llvm::ISD::isNormalStore().
Referenced by LowerEXTRACT_VECTOR_ELT_SSE4().
Check if Op is an operation that could be folded into a zero extend x86 instruction.
Definition at line 2681 of file X86ISelLowering.cpp.
References llvm::ISD::ZERO_EXTEND.
Referenced by LowerEXTRACT_VECTOR_ELT_SSE4().
bool llvm::X86::mayFoldLoad | ( | SDValue | Op, |
const X86Subtarget & | Subtarget, | ||
bool | AssumeSingleUse = false |
||
) |
Check if Op is a load operation that could be folded into some other x86 instruction as a memory operand.
Example: vpaddd (rdi), xmm0, xmm0.
Definition at line 2644 of file X86ISelLowering.cpp.
References llvm::X86Subtarget::hasAVX(), and llvm::ISD::isNormalLoad().
Referenced by combineCommutableSHUFP(), combineConcatVectorOps(), combineX86ShuffleChain(), EmitCmp(), llvm::X86TargetLowering::IsDesirableToPromoteOp(), lowerShuffleAsDecomposedShuffleMerge(), lowerV2X128Shuffle(), mayFoldLoadIntoBroadcastFromMem(), and pushAddIntoCmovOfConsts().
bool llvm::X86::mayFoldLoadIntoBroadcastFromMem | ( | SDValue | Op, |
MVT | EltVT, | ||
const X86Subtarget & | Subtarget, | ||
bool | AssumeSingleUse = false |
||
) |
Check if Op is a load operation that could be folded into a vector splat instruction as a memory operand.
Example: vbroadcastss 16(rdi), xmm2.
Definition at line 2663 of file X86ISelLowering.cpp.
References assert(), llvm::MVT::getScalarSizeInBits(), llvm::X86Subtarget::hasAVX(), and mayFoldLoad().
Referenced by combineConcatVectorOps(), and EltsFromConsecutiveLoads().
Definition at line 311 of file X86EncodingOptimization.cpp.
bool llvm::X86::optimizeInstFromVEX3ToVEX2 | ( | MCInst & | MI, |
const MCInstrDesc & | Desc | ||
) |
Definition at line 22 of file X86EncodingOptimization.cpp.
References llvm::X86II::EncodingMask, llvm::X86II::FormMask, FROM_TO, llvm::X86II::isX86_64ExtendedReg(), MI, llvm::X86II::MRMSrcReg, llvm::X86II::OpMapMask, llvm::X86II::REX_W, std::swap(), llvm::X86II::TB, TO_REV, llvm::X86II::VEX, and llvm::X86II::VEX_4V.
Simplify things like MOV32rm to MOV32o32a.
Definition at line 337 of file X86EncodingOptimization.cpp.
References AddrBaseReg, AddrIndexReg, AddrScaleAmt, AddrSegmentReg, FROM_TO, isARegister(), MI, Saved, and llvm::MCSymbolRefExpr::VK_TLVP.
Definition at line 289 of file X86EncodingOptimization.cpp.
Definition at line 104 of file X86EncodingOptimization.cpp.
References llvm::MCOperand::getImm(), llvm::MCOperand::isImm(), MI, and TO_IMM1.
Definition at line 498 of file X86EncodingOptimization.cpp.
References MI, optimizeToFixedRegisterForm(), and optimizeToShortImmediateForm().
Definition at line 202 of file X86EncodingOptimization.cpp.
References FROM_TO, llvm::MCOperand::getImm(), and MI.
X86::CPUKind llvm::X86::parseArchX86 | ( | StringRef | CPU, |
bool | Only64Bit = false |
||
) |
Parse CPU
string into a CPUKind.
Will only accept 64-bit capable CPUs if Only64Bit
is true.
Definition at line 432 of file X86TargetParser.cpp.
References CK_None, P, and Processors.
Referenced by parseTuneCPU().
X86::CPUKind llvm::X86::parseTuneCPU | ( | StringRef | CPU, |
bool | Only64Bit = false |
||
) |
Definition at line 441 of file X86TargetParser.cpp.
References CK_None, llvm::is_contained(), NoTuneList, and parseArchX86().
void llvm::X86::updateImpliedFeatures | ( | StringRef | Feature, |
bool | Enabled, | ||
StringMap< bool > & | Features | ||
) |
Set or clear entries in Features
that are implied to be enabled/disabled by the provided Feature
.
Definition at line 692 of file X86TargetParser.cpp.
References CPU_FEATURE_MAX, Enabled, FeatureInfos, llvm::find_if(), getImpliedDisabledFeatures(), getImpliedEnabledFeatures(), getName(), and I.
Definition at line 725 of file X86TargetParser.cpp.
References llvm::find_if(), I, Name, P, and Processors.