|
LLVM 24.0.0git
|
#include "Target/X86/X86Subtarget.h"
Definition at line 58 of file X86Subtarget.h.
| X86Subtarget::X86Subtarget | ( | const Triple & | TT, |
| StringRef | CPU, | ||
| StringRef | TuneCPU, | ||
| StringRef | FS, | ||
| const X86TargetMachine & | TM, | ||
| MaybeAlign | StackAlignOverride, | ||
| unsigned | PreferVectorWidthOverride, | ||
| unsigned | RequiredVectorWidth ) |
This constructor initializes the data members to match that of the specified triple.
Definition at line 313 of file X86Subtarget.cpp.
References llvm::createX86InstructionSelector(), getCLOpts(), getRegisterInfo(), getStackAlignment(), getTargetLowering(), llvm::PICStyles::GOT, is64Bit(), isPositionIndependent(), isTargetCOFF(), isTargetDarwin(), isTargetELF(), llvm::CodeModel::Large, llvm::None, llvm::PICStyles::None, llvm::PICStyles::RIPRel, setPICStyle(), and llvm::PICStyles::StubPIC.
|
overridedefault |
|
inline |
Avoid use of mfence forfence seq_cst, and instead use lock or.
Definition at line 298 of file X86Subtarget.h.
References is64Bit().
Referenced by LowerATOMIC_FENCE().
|
inline |
Definition at line 251 of file X86Subtarget.h.
References canExtendTo512DQ().
Referenced by lower1BitShuffle(), LowerMUL(), LowerMULH(), LowerMULO(), LowerShift(), and LowerShiftByScalarVariable().
|
inline |
Definition at line 248 of file X86Subtarget.h.
References getPreferVectorWidth(), and hasAVX512().
Referenced by canExtendTo512BW(), lower1BitShuffle(), LowerMULO(), LowerShift(), LowerShiftByScalarVariable(), LowerSIGN_EXTEND_Mask(), LowerTruncateVecI1(), LowerVectorCTLZ(), LowerVectorCTLZ_AVX512CDI(), LowerVectorCTPOP(), LowerZERO_EXTEND_Mask(), useAVX512Regs(), and useVPTERNLOG().
|
inline |
Definition at line 208 of file X86Subtarget.h.
References hasSSE1(), and is64Bit().
Referenced by combineCMov(), enableEarlyIfConversion(), LowerABD(), and LowerSELECTWithCmpZero().
|
inline |
Definition at line 202 of file X86Subtarget.h.
References is64Bit().
|
inline |
Definition at line 201 of file X86Subtarget.h.
|
inline |
Definition at line 230 of file X86Subtarget.h.
References is64Bit().
Classify a blockaddress reference for the current subtarget according to how we should reference it in a non-pcrel context.
Definition at line 55 of file X86Subtarget.cpp.
References classifyLocalReference().
|
override |
Definition at line 182 of file X86Subtarget.cpp.
References classifyGlobalFunctionReference(), and llvm::GlobalValue::getParent().
| unsigned char X86Subtarget::classifyGlobalFunctionReference | ( | const GlobalValue * | GV, |
| const Module & | M ) const |
Classify a global function reference for the current subtarget.
Definition at line 187 of file X86Subtarget.cpp.
References llvm::dyn_cast_or_null(), F, llvm::GlobalValue::hasDLLImportStorageClass(), is64Bit(), isTargetCOFF(), isTargetELF(), llvm::X86II::MO_COFFSTUB, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOTPCREL, llvm::X86II::MO_NO_FLAG, llvm::X86II::MO_PLT, llvm::Reloc::Static, and llvm::CallingConv::X86_RegCall.
Referenced by classifyGlobalFunctionReference().
| unsigned char X86Subtarget::classifyGlobalReference | ( | const GlobalValue * | GV | ) | const |
Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.
Definition at line 62 of file X86Subtarget.cpp.
References classifyGlobalReference(), and llvm::GlobalValue::getParent().
| unsigned char X86Subtarget::classifyGlobalReference | ( | const GlobalValue * | GV, |
| const Module & | M ) const |
Definition at line 120 of file X86Subtarget.cpp.
References classifyLocalReference(), llvm::GlobalValue::getAbsoluteSymbolRange(), llvm::GlobalValue::hasDLLImportStorageClass(), is64Bit(), llvm::isa(), isOSWindows(), isPositionIndependent(), isTargetCOFF(), isTargetDarwin(), isTargetELF(), llvm::CodeModel::Large, llvm::X86II::MO_ABS8, llvm::X86II::MO_COFFSTUB, llvm::X86II::MO_DARWIN_NONLAZY, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_DLLIMPORT, llvm::X86II::MO_GOT, llvm::X86II::MO_GOTPCREL, llvm::X86II::MO_GOTPCREL_NORELAX, llvm::X86II::MO_NO_FLAG, and llvm::Reloc::Static.
Referenced by classifyGlobalReference(), and X86SelectAddress().
| unsigned char X86Subtarget::classifyLocalReference | ( | const GlobalValue * | GV | ) | const |
Classify a global variable reference for the current subtarget according to how we should reference it in a non-pcrel context.
Definition at line 67 of file X86Subtarget.cpp.
References assert(), llvm::GlobalValue::hasCommonLinkage(), is64Bit(), llvm::isa(), llvm::GlobalValue::isDeclarationForLinker(), isPositionIndependent(), isTargetCOFF(), isTargetDarwin(), isTargetELF(), llvm::CodeModel::Large, llvm::X86II::MO_DARWIN_NONLAZY_PIC_BASE, llvm::X86II::MO_GOTOFF, llvm::X86II::MO_GOTPCREL_NORELAX, llvm::X86II::MO_NO_FLAG, llvm::X86II::MO_PIC_BASE_OFFSET, and llvm::CodeModel::Tiny.
Referenced by classifyBlockAddressReference(), classifyGlobalReference(), and X86SelectAddress().
|
override |
Definition at line 366 of file X86Subtarget.cpp.
References canUseCMOV().
|
inlineoverride |
If we are using indirect thunks, we need to expand indirectbr to avoid it lowering to an actual indirect jump.
Definition at line 440 of file X86Subtarget.h.
References useIndirectThunkBranches().
|
inlineoverride |
Enable the MachineScheduler pass for all X86 subtargets.
Definition at line 445 of file X86Subtarget.h.
|
inlineoverride |
Definition at line 452 of file X86Subtarget.h.
|
override |
Methods used by Global ISel.
Definition at line 350 of file X86Subtarget.cpp.
|
inline |
Definition at line 131 of file X86Subtarget.h.
Referenced by llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86RegisterInfo::getLargestLegalSuperClass(), llvm::X86RegisterInfo::hasBasePointer(), runX86SpeculativeExecutionSideEffectSuppression(), and X86Subtarget().
|
inlineoverride |
Definition at line 139 of file X86Subtarget.h.
Referenced by emitLockedStackOp(), and ExpandMOVImmSExti8().
|
inlineoverride |
Definition at line 137 of file X86Subtarget.h.
Referenced by argumentStackSlotRebase(), getRegisterInfo(), initGlobalBaseReg(), llvm::X86CallLowering::lowerCall(), ReplaceTLSBaseAddrCall(), runX86LoadValueInjectionRetHardening(), runX86SpeculativeExecutionSideEffectSuppression(), SetRegister(), UpdatedOnX86AvoidTrailingCallPass(), llvm::X86LegalizerInfo::X86LegalizerInfo(), and X86SelectAddress().
|
override |
Definition at line 354 of file X86Subtarget.cpp.
|
override |
Definition at line 358 of file X86Subtarget.cpp.
|
inline |
Returns the maximum memset / memcpy size that still makes it profitable to inline the call.
Definition at line 161 of file X86Subtarget.h.
Referenced by emitConstantSizeRepmov(), and emitConstantSizeRepstos().
|
inline |
Definition at line 198 of file X86Subtarget.h.
|
override |
Definition at line 370 of file X86Subtarget.cpp.
References llvm::createX86MacroFusionDAGMutation().
|
inline |
Definition at line 241 of file X86Subtarget.h.
Referenced by canExtendTo512DQ(), combineConcatVectorOps(), and useLight256BitInstructions().
|
override |
Definition at line 362 of file X86Subtarget.cpp.
|
inlineoverride |
Definition at line 147 of file X86Subtarget.h.
References getInstrInfo(), and llvm::X86InstrInfo::getRegisterInfo().
Referenced by argumentStackSlotRebase(), expandXorFP(), getBroadcastOpcode(), getLoadStoreRegOpcode(), llvm::X86CallLowering::lowerCall(), runX86LoadValueInjectionRetHardening(), and X86Subtarget().
|
inline |
Definition at line 242 of file X86Subtarget.h.
|
inlineoverride |
Definition at line 143 of file X86Subtarget.h.
|
inline |
Returns the minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function for this subtarget.
Definition at line 157 of file X86Subtarget.h.
Referenced by X86Subtarget().
|
inlineoverride |
Definition at line 133 of file X86Subtarget.h.
Referenced by combineConcatVectorOps(), combineOrCmpEqZeroToCtlzSrl(), combineSIntToFP(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCallPreservedMask(), and X86Subtarget().
Definition at line 300 of file X86Subtarget.h.
Referenced by computeBytesPoppedByCalleeForSRet(), hasCalleePopSRet(), and swiftAsyncContextIsDynamicallySet().
|
inline |
Definition at line 152 of file X86Subtarget.h.
|
inline |
Definition at line 151 of file X86Subtarget.h.
|
inline |
Definition at line 219 of file X86Subtarget.h.
Referenced by combineFMA(), combineFneg(), combineShuffleToFMAddSub(), and isFMAddSubOrFMSubAdd().
|
inline |
Definition at line 215 of file X86Subtarget.h.
Referenced by combineAdd(), combineAndShuffleNot(), combineBitcastvxi1(), combineCONCAT_VECTORS(), combineConcatVectorOps(), combineConstantPoolLoads(), combineEXTRACT_SUBVECTOR(), combineLoad(), combinePTESTCC(), combineSelect(), combineSetCC(), combineSetCCMOVMSK(), combineToHorizontalAddSub(), combineVECREDUCE_LOGIC(), combineVectorSizedSetCCEquality(), combineX86ShuffleChain(), convertIntLogicToFPLogic(), CopyToFromAsymmetricReg(), createVariablePermute(), EltsFromConsecutiveLoads(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCallPreservedMask(), getLoadStoreRegOpcode(), getMOVMSK(), isLegalConversion(), LowerANY_EXTEND(), LowerATOMIC_STORE(), lowerBuildVectorAsBroadcast(), LowerEXTEND_VECTOR_INREG(), LowerShift(), lowerShuffleAsBlend(), lowerShuffleAsBroadcast(), lowerShuffleAsDecomposedShuffleMerge(), lowerUINT_TO_FP_vXi32(), lowerV2F64Shuffle(), lowerV4F32Shuffle(), LowerVectorAllEqual(), LowerVSETCC(), LowerVSETCCWithSUBUS(), LowerZERO_EXTEND(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), matchTruncateWithPACK(), matchUnaryPermuteShuffle(), matchUnaryShuffle(), llvm::X86::mayFoldLoad(), llvm::X86::mayFoldLoadIntoBroadcastFromMem(), useVectorCast(), and X86ChooseCmpOpcode().
|
inline |
Definition at line 216 of file X86Subtarget.h.
Referenced by combineBitcastvxi1(), combineBlendOfPermutes(), combineConcatVectorOps(), combineEXTRACT_SUBVECTOR(), combineIntDivRemViaExactFPDiv(), combineSelect(), combineSetCC(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineVSelectToBLENDV(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), convertShiftLeftToScale(), createVariablePermute(), EltsFromConsecutiveLoads(), expandFP_TO_UINT_SSE(), foldVectorXorShiftIntoCmp(), hasInt256(), isHorizontalBinOp(), lower256BitShuffle(), lowerBuildVectorAsBlend(), lowerBuildVectorAsBroadcast(), LowerFunnelShift(), LowerMGATHER(), LowerRotate(), LowerShift(), lowerShuffleAsBlend(), lowerShuffleAsBroadcast(), lowerShuffleAsByteRotateAndPermute(), lowerShuffleAsDecomposedShuffleMerge(), lowerShuffleAsLanePermuteAndPermute(), lowerShuffleAsLanePermuteAndShuffle(), lowerShuffleAsRepeatedMaskAndLanePermute(), lowerShuffleAsSplitOrBlend(), lowerShuffleAsTruncBroadcast(), lowerShuffleWithPSHUFB(), lowerShuffleWithUndefHalf(), lowerV16I16Shuffle(), lowerV2F64Shuffle(), lowerV2I64Shuffle(), lowerV2X128Shuffle(), lowerV32I8Shuffle(), lowerV4F32Shuffle(), lowerV4F64Shuffle(), lowerV4I32Shuffle(), lowerV4I64Shuffle(), lowerV8F32Shuffle(), lowerV8I16Shuffle(), lowerV8I32Shuffle(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), matchUnaryPermuteShuffle(), and SplitOpsAndApply().
|
inline |
Definition at line 217 of file X86Subtarget.h.
Referenced by canCombineAsMaskOperation(), canExtendTo512DQ(), canonicalizeBoolMask(), combineArithReduction(), combineAVX512SetCCToKMOV(), combineBitcast(), combineBitcastvxi1(), combineCastedMaskArithmetic(), combineCompareEqual(), combineConcatVectorOps(), combineExtSetcc(), combineLoad(), combineMaskedLoad(), combineMulToPMADDWD(), combinePMULH(), combineSelect(), combineSetCC(), combineStore(), combineTargetShuffle(), combineToExtendBoolVectorInReg(), combineTruncateWithSat(), combineVectorPack(), combineX86ShuffleChain(), commuteSelect(), convertShiftLeftToScale(), CopyToFromAsymmetricReg(), createVariablePermute(), EmitAVX512Test(), getAVX512Node(), getBroadcastOpcode(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCallPreservedMask(), llvm::X86RegisterInfo::getLargestLegalSuperClass(), getLoadStoreRegOpcode(), llvm::X86RegisterInfo::getReservedRegs(), isMaskableNode(), lower1BitShuffle(), lower512BitShuffle(), LowerBITCAST(), LowerEXTEND_VECTOR_INREG(), LowerFunnelShift(), LowerLoad(), LowerMGATHER(), LowerMINMAX_REDUCE(), LowerMLOAD(), LowerMSCATTER(), LowerMSTORE(), LowerMULH(), LowerRotate(), LowerShift(), lowerShuffleAsBitRotate(), lowerShuffleAsVTRUNC(), lowerShuffleWithUndefHalf(), lowerShuffleWithVPMOV(), LowerStore(), lowerUINT_TO_FP_v2i32(), lowerUINT_TO_FP_vXi32(), lowerV16I16Shuffle(), lowerV2X128Shuffle(), lowerV32I8Shuffle(), lowerV8F32Shuffle(), lowerV8I32Shuffle(), lowerVECTOR_COMPRESS(), LowerVSETCC(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), matchShuffleAsBitRotate(), matchTruncateWithPACK(), matchUnaryPermuteShuffle(), matchUnaryShuffle(), supportedVectorShiftWithImm(), supportedVectorVarShift(), truncateAVX512SetCCNoBWI(), truncateVectorWithPACK(), useAVX512Regs(), useVectorCast(), and X86ChooseCmpOpcode().
|
inline |
Definition at line 283 of file X86Subtarget.h.
References is64Bit().
Referenced by combineCMov(), LowerCTLZ(), and LowerCTTZ().
|
inline |
Use clflush if we have SSE2 or we're on x86-64 (even if we asked for no-sse2).
There isn't any reason to disable it if the target processor supports it.
Definition at line 290 of file X86Subtarget.h.
|
inline |
Definition at line 218 of file X86Subtarget.h.
References hasAVX2().
Referenced by combineConcatVectorOps(), combineHorizOpWithShuffle(), combineLoad(), combineLogicBlendIntoPBLENDV(), combinePMULH(), combineSetCCMOVMSK(), combineSignExtendInReg(), combineToExtendBoolVectorInReg(), combineVECREDUCE_LOGIC(), convertShiftLeftToScale(), EltsFromConsecutiveLoads(), getMOVMSK(), LowerABD(), LowerABS(), LowerADDSAT_SUBSAT(), LowerAVG(), LowerAVXExtend(), LowerBITREVERSE(), lowerBuildVectorAsBroadcast(), LowerEXTEND_VECTOR_INREG(), LowerMINMAX(), LowerMUL(), LowerMULH(), LowerMULO(), LowerShift(), LowerShiftByScalarImmediate(), LowerSIGN_EXTEND(), LowerVectorCTLZ(), LowerVectorCTPOP(), LowerVSETCC(), matchBinaryShuffle(), matchUnaryShuffle(), PromoteMaskArithmetic(), supportedVectorShiftWithImm(), supportedVectorVarShift(), and truncateVectorWithPACK().
|
inline |
Use mfence if we have SSE2 or we're on x86-64 (even if we asked for no-sse2).
There isn't any reason to disable it if the target processor supports it.
Definition at line 295 of file X86Subtarget.h.
References hasSSE2(), and is64Bit().
Referenced by LowerATOMIC_FENCE().
|
inline |
Definition at line 255 of file X86Subtarget.h.
Referenced by hasNoDomainDelayBlend(), hasNoDomainDelayMov(), and hasNoDomainDelayShuffle().
|
inline |
Definition at line 259 of file X86Subtarget.h.
References hasNoDomainDelay().
|
inline |
Definition at line 256 of file X86Subtarget.h.
References hasNoDomainDelay().
|
inline |
Definition at line 262 of file X86Subtarget.h.
References hasNoDomainDelay().
|
inline |
Definition at line 220 of file X86Subtarget.h.
|
inline |
Definition at line 209 of file X86Subtarget.h.
Referenced by canUseCMOV(), combineAnd(), combineBitcast(), combineBitcastvxi1(), combineCMov(), combineFAndFNotToFAndn(), combineFMinNumFMaxNum(), combineOr(), combineSetCC(), combineXor(), convertIntLogicToFPLogic(), createMMXBuildVector(), createSetFPEnvNodes(), get64BitArgumentXMMs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCallPreservedMask(), hasSSEPrefetch(), LowerATOMIC_STORE(), LowerStore(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), and X86ChooseCmpOpcode().
|
inline |
Definition at line 210 of file X86Subtarget.h.
Referenced by combineAnd(), combineAndShuffleNot(), combineArithReduction(), combineBasicSADPattern(), combineBitcast(), combineBitcastvxi1(), combineCMov(), combineCompareEqual(), combineExtractWithShuffle(), combineFAndFNotToFAndn(), combineFMinNumFMaxNum(), combineFPToSInt(), combineIntDivRem(), combineLogicBlendIntoPBLENDV(), combineMOVMSK(), combineMulToPMADDWD(), combineMulToPMULDQ(), combineOr(), combinePMULH(), combineScalarMinMaxAbsStore(), combineSelect(), combineSetCC(), combineShiftToPMULH(), combineStore(), combineToExtendBoolVectorInReg(), combineTruncateWithSat(), combineVECREDUCE_LOGIC(), combineVectorSizedSetCCEquality(), combineX86FPLogicOp(), combineX86ShuffleChain(), combineXor(), convertIntLogicToFPLogic(), EltsFromConsecutiveLoads(), foldVectorXorShiftIntoCmp(), getZeroVector(), hasCLFLUSH(), hasMFence(), isLegalConversion(), LowerATOMIC_STORE(), LowerBITCAST(), LowerBuildVectorAsInsert(), LowerEXTEND_VECTOR_INREG(), lowerFPToIntToFP(), LowerMUL(), LowerMULH(), LowerShift(), LowerStore(), lowerV4F32Shuffle(), LowerVSETCC(), LowerVSETCCWithSUBUS(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), matchPMADDWD(), matchPMADDWD_2(), matchTruncateWithPACK(), matchUnaryPermuteShuffle(), matchUnaryShuffle(), MatchVectorAllEqualTest(), materializeVectorConstant(), reduceVMULWidth(), SplitOpsAndApply(), supportedVectorShiftWithImm(), truncateVectorWithPACK(), useVectorCast(), and X86ChooseCmpOpcode().
|
inline |
Definition at line 211 of file X86Subtarget.h.
Referenced by combineArithReduction(), combineToHorizontalAddSub(), isAddSubOrSubAdd(), lowerAddSubToHorizontalOp(), LowerBuildVectorv4x32(), lowerShuffleAsBitRotate(), lowerShuffleAsBroadcast(), LowerUINT_TO_FP_i64(), lowerV4F32Shuffle(), and matchUnaryShuffle().
|
inline |
Definition at line 213 of file X86Subtarget.h.
Referenced by combineArithReduction(), combineEXTEND_VECTOR_INREG(), combineExtractWithShuffle(), combineLogicBlendIntoPBLENDV(), combineMulToPMADDWD(), combineMulToPMULDQ(), combineSetCCMOVMSK(), combineTruncateWithSat(), combineVectorSizedSetCCEquality(), combineVSelectToBLENDV(), combineX86ShuffleChain(), convertShiftLeftToScale(), createVariablePermute(), getPack(), getTargetVShiftNode(), LowerABS(), LowerBuildVectorAsInsert(), LowerBuildVectorv16i8(), LowerBuildVectorv4x32(), LowerBuildVectorv8i16(), LowerMINMAX_REDUCE(), LowerMUL(), LowerMULH(), LowerRotate(), LowerShift(), lowerShuffleAsBlend(), lowerShuffleAsDecomposedShuffleMerge(), lowerShuffleAsSpecificExtension(), lowerShuffleWithPACK(), LowerTruncateVecPack(), lowerUINT_TO_FP_vXi32(), lowerV16I8Shuffle(), lowerV2F64Shuffle(), lowerV2I64Shuffle(), lowerV4F32Shuffle(), lowerV4I32Shuffle(), lowerV8I16Shuffle(), LowerVectorAllEqual(), LowerVSETCC(), matchBinaryPermuteShuffle(), matchBinaryShuffle(), matchShuffleWithPACK(), matchShuffleWithUNPCK(), matchTruncateWithPACK(), matchUnaryShuffle(), reduceVMULWidth(), and truncateVectorWithPACK().
|
inline |
Definition at line 214 of file X86Subtarget.h.
Referenced by LowerShiftByScalarImmediate(), and LowerVSETCC().
|
inline |
Definition at line 225 of file X86Subtarget.h.
References hasSSE1().
|
inline |
Definition at line 212 of file X86Subtarget.h.
Referenced by combineArithReduction(), combineBITREVERSE(), combineToHorizontalAddSub(), combineX86ShuffleChain(), createVariablePermute(), detectPMADDUBSW(), lowerAddSubToHorizontalOp(), LowerBITREVERSE(), LowerMUL(), LowerShift(), lowerShuffleAsByteRotate(), lowerShuffleAsByteRotateAndPermute(), lowerShuffleAsByteShiftMask(), lowerShuffleAsSpecificExtension(), lowerShuffleWithPSHUFB(), LowerTruncateVecPack(), lowerV16I8Shuffle(), lowerV2I64Shuffle(), lowerV4I32Shuffle(), lowerV8I16Shuffle(), LowerVectorCTLZ(), LowerVectorCTPOP(), matchBinaryPermuteShuffle(), and matchTruncateWithPACK().
|
inline |
Definition at line 176 of file X86Subtarget.h.
|
inline |
Definition at line 366 of file X86Subtarget.h.
References llvm::CallingConv::C, llvm::CallingConv::Fast, llvm::CallingConv::Intel_OCL_BI, isTargetUEFI64(), isTargetWin64(), llvm::CallingConv::Swift, llvm::CallingConv::SwiftTail, llvm::CallingConv::Tail, llvm::CallingConv::Win64, llvm::CallingConv::X86_64_SysV, llvm::CallingConv::X86_FastCall, llvm::CallingConv::X86_StdCall, llvm::CallingConv::X86_ThisCall, and llvm::CallingConv::X86_VectorCall.
Referenced by get64BitArgumentGPRs(), get64BitArgumentXMMs(), llvm::X86CallLowering::lowerCall(), and LowerVACOPY().
| bool X86Subtarget::isLegalToCallImmediateAddr | ( | ) | const |
Return true if the subtarget allows calls to immediate address.
Definition at line 236 of file X86Subtarget.cpp.
References isPositionIndependent(), isTargetELF(), isTargetWin32(), and llvm::Reloc::Static.
|
inline |
Definition at line 321 of file X86Subtarget.h.
Referenced by llvm::X86RegisterInfo::getReservedRegs().
|
inline |
Definition at line 347 of file X86Subtarget.h.
Referenced by classifyGlobalReference(), isTargetWin32(), and isTargetWin64().
|
inline |
Definition at line 349 of file X86Subtarget.h.
|
inline |
Definition at line 357 of file X86Subtarget.h.
References llvm::PICStyles::GOT.
Referenced by initGlobalBaseReg().
|
inline |
Definition at line 358 of file X86Subtarget.h.
References llvm::PICStyles::RIPRel.
Referenced by X86SelectAddress().
|
inline |
Definition at line 360 of file X86Subtarget.h.
References llvm::PICStyles::StubPIC.
| bool X86Subtarget::isPositionIndependent | ( | ) | const |
Definition at line 375 of file X86Subtarget.cpp.
Referenced by classifyGlobalReference(), classifyLocalReference(), isLegalToCallImmediateAddr(), and X86Subtarget().
Definition at line 173 of file X86Subtarget.h.
References llvm::Register::id().
Referenced by llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), and llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset().
|
inline |
Is this x86_64 with the ILP32 programming model (x32 ABI)?
Definition at line 193 of file X86Subtarget.h.
Referenced by argumentStackSlotRebase(), getLeaOP(), llvm::X86RegisterInfo::getPtrSizedFrameRegister(), and llvm::X86RegisterInfo::getPtrSizedStackRegister().
|
inline |
Is this x86_64 with the LP64 programming model (standard AMD64, no x32)?
Definition at line 196 of file X86Subtarget.h.
Referenced by emitRepmovs(), emitRepstos(), LowerVACOPY(), and llvm::X86SelectionDAGInfo::verifyTargetNode().
|
inline |
Definition at line 317 of file X86Subtarget.h.
|
inline |
Definition at line 309 of file X86Subtarget.h.
Referenced by classifyGlobalFunctionReference(), classifyGlobalReference(), classifyLocalReference(), and X86Subtarget().
|
inline |
Definition at line 343 of file X86Subtarget.h.
|
inline |
Definition at line 302 of file X86Subtarget.h.
Referenced by classifyGlobalReference(), classifyLocalReference(), and X86Subtarget().
|
inline |
Definition at line 304 of file X86Subtarget.h.
|
inline |
Definition at line 308 of file X86Subtarget.h.
Referenced by argumentStackSlotRebase(), classifyGlobalFunctionReference(), classifyGlobalReference(), classifyLocalReference(), isLegalToCallImmediateAddr(), and X86Subtarget().
|
inline |
Definition at line 303 of file X86Subtarget.h.
|
inline |
Definition at line 319 of file X86Subtarget.h.
|
inline |
Definition at line 315 of file X86Subtarget.h.
|
inline |
Definition at line 314 of file X86Subtarget.h.
|
inline |
Definition at line 313 of file X86Subtarget.h.
|
inline |
Definition at line 312 of file X86Subtarget.h.
Referenced by argumentStackSlotRebase(), and llvm::X86CallLowering::lowerCall().
|
inline |
Definition at line 310 of file X86Subtarget.h.
|
inline |
Definition at line 318 of file X86Subtarget.h.
Referenced by computeBytesPoppedByCalleeForSRet().
|
inline |
Definition at line 316 of file X86Subtarget.h.
|
inline |
Definition at line 306 of file X86Subtarget.h.
|
inline |
Definition at line 305 of file X86Subtarget.h.
|
inline |
Definition at line 351 of file X86Subtarget.h.
References isUEFI().
Referenced by isCallingConvWin64().
|
inline |
Definition at line 355 of file X86Subtarget.h.
References isOSWindows().
Referenced by isLegalToCallImmediateAddr().
|
inline |
Definition at line 353 of file X86Subtarget.h.
References isOSWindows().
Referenced by isCallingConvWin64(), and UpdatedOnX86AvoidTrailingCallPass().
|
inline |
Definition at line 327 of file X86Subtarget.h.
|
inline |
Definition at line 331 of file X86Subtarget.h.
|
inline |
Definition at line 335 of file X86Subtarget.h.
|
inline |
Definition at line 339 of file X86Subtarget.h.
|
inline |
Definition at line 323 of file X86Subtarget.h.
|
inline |
Definition at line 345 of file X86Subtarget.h.
Referenced by isTargetUEFI64().
|
inlineoverride |
Definition at line 285 of file X86Subtarget.h.
References is64Bit().
ParseSubtargetFeatures - Parses features string setting specified subtarget options.
Definition of function is auto generated by tblgen.
|
inline |
Definition at line 199 of file X86Subtarget.h.
Referenced by X86Subtarget().
|
inline |
Return whether FrameLowering should always set the "extended frame present" bit in FP, or set it based on a symbol in the runtime.
Definition at line 416 of file X86Subtarget.h.
References llvm::Triple::Darwin, getTargetTriple(), llvm::Triple::IOS, llvm::Triple::MacOSX, llvm::Triple::TvOS, and llvm::Triple::WatchOS.
|
inline |
Definition at line 268 of file X86Subtarget.h.
References canExtendTo512DQ(), and hasAVX512().
Referenced by llvm::X86TTIImpl::areInlineCompatible(), combineAndShuffleNot(), combineConcatVectorOps(), combineExtSetcc(), combineIntDivRem(), combineTargetShuffle(), combineTruncateWithSat(), combineVectorSizedSetCCEquality(), combineX86ShuffleChain(), handleMaskRegisterForCallingConv(), isLegalConversion(), lowerFPToIntToFP(), lowerShuffleAsVTRUNC(), LowerVectorAllEqual(), LowerVSETCC(), matchUnaryShuffle(), SplitOpsAndApply(), supportedVectorShiftWithImm(), supportedVectorVarShift(), and useBWIRegs().
|
inline |
Definition at line 276 of file X86Subtarget.h.
References useAVX512Regs().
Referenced by combineConcatVectorOps(), lower1BitShuffle(), LowerABD(), LowerFunnelShift(), LowerRotate(), LowerShift(), matchUnaryShuffle(), and SplitOpsAndApply().
|
inline |
Definition at line 237 of file X86Subtarget.h.
Referenced by enableIndirectBrExpand().
|
inline |
Definition at line 234 of file X86Subtarget.h.
|
inline |
Definition at line 272 of file X86Subtarget.h.
References getPreferVectorWidth().