LLVM 24.0.0git
PreISelIntrinsicLowering.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "pre-isel-intrinsic-lowering"
#define BEGIN_REGISTER_VP_INTRINSIC(VPID, MASKPOS, VLENPOS)

Functions

template<class T>
static bool forEachCall (Function &Intrin, T Callback)
static bool lowerLoadRelative (Function &F)
static bool lowerCanLoadSpeculatively (Function &F, const TargetMachine *TM)
 Lower @llvm.can.load.speculatively using target-specific expansion.
static CallInst::TailCallKind getOverridingTailCallKind (const Function &F)
static bool lowerObjCCall (Function &F, RTLIB::LibcallImpl NewFn, bool setNonLazyBind=false)
static bool canEmitLibcall (const ModuleLibcallLoweringInfo &ModuleLowering, const TargetMachine *TM, Function *F, RTLIB::Libcall LC)
static bool canEmitMemcpy (const ModuleLibcallLoweringInfo &ModuleLowering, const TargetMachine *TM, Function *F)
static ConstantgetMemSetPattern16Value (MemSetPatternInst *Inst, const TargetLibraryInfo &TLI)
static GlobalValuegetDeactivationSymbol (CallInst *Call)
static bool expandPtrauthForEmuPAC (Function &Intr)
static bool expandProtectedFieldPtr (Function &Intr)
static bool expandCondLoop (Function &Intr)
static bool expandLoopTrap (Function &Intr)
 INITIALIZE_PASS_BEGIN (PreISelIntrinsicLoweringLegacyPass, "pre-isel-intrinsic-lowering", "Pre-ISel Intrinsic Lowering", false, false) INITIALIZE_PASS_END(PreISelIntrinsicLoweringLegacyPass

Variables

static cl::opt< int64_t > MemIntrinsicExpandSizeThresholdOpt ("mem-intrinsic-expand-size", cl::desc("Set minimum mem intrinsic size to expand in IR"), cl::init(-1), cl::Hidden)
 Threshold to leave statically sized memory intrinsic calls.
pre isel intrinsic lowering
pre isel intrinsic Pre ISel Intrinsic Lowering
pre isel intrinsic Pre ISel Intrinsic false

Macro Definition Documentation

◆ BEGIN_REGISTER_VP_INTRINSIC

#define BEGIN_REGISTER_VP_INTRINSIC ( VPID,
MASKPOS,
VLENPOS )
Value:
case Intrinsic::VPID:

◆ DEBUG_TYPE

#define DEBUG_TYPE   "pre-isel-intrinsic-lowering"

Definition at line 49 of file PreISelIntrinsicLowering.cpp.

Function Documentation

◆ canEmitLibcall()

bool canEmitLibcall ( const ModuleLibcallLoweringInfo & ModuleLowering,
const TargetMachine * TM,
Function * F,
RTLIB::Libcall LC )
static

◆ canEmitMemcpy()

bool canEmitMemcpy ( const ModuleLibcallLoweringInfo & ModuleLowering,
const TargetMachine * TM,
Function * F )
static

◆ expandCondLoop()

◆ expandLoopTrap()

◆ expandProtectedFieldPtr()

◆ expandPtrauthForEmuPAC()

◆ forEachCall()

template<class T>
bool forEachCall ( Function & Intrin,
T Callback )
static

◆ getDeactivationSymbol()

◆ getMemSetPattern16Value()

◆ getOverridingTailCallKind()

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( PreISelIntrinsicLoweringLegacyPass ,
"pre-isel-intrinsic-lowering" ,
"Pre-ISel Intrinsic Lowering" ,
false ,
false  )

◆ lowerCanLoadSpeculatively()

bool lowerCanLoadSpeculatively ( Function & F,
const TargetMachine * TM )
static

Lower @llvm.can.load.speculatively using target-specific expansion.

Targets may provide their own expansion via TargetLowering::emitCanLoadSpeculatively; the default expansion conservatively returns false.

Definition at line 144 of file PreISelIntrinsicLowering.cpp.

References llvm::TargetLoweringBase::emitCanLoadSpeculatively(), llvm::Instruction::eraseFromParent(), F, forEachCall(), llvm::CallBase::getArgOperand(), llvm::Instruction::getFunction(), llvm::TargetMachine::getSubtargetImpl(), llvm::TargetSubtargetInfo::getTargetLowering(), and llvm::Value::replaceAllUsesWith().

◆ lowerLoadRelative()

bool lowerLoadRelative ( Function & F)
static

◆ lowerObjCCall()

Variable Documentation

◆ false

pre isel intrinsic Pre ISel Intrinsic false

Definition at line 941 of file PreISelIntrinsicLowering.cpp.

◆ Lowering

pre isel intrinsic Pre ISel Intrinsic Lowering

◆ lowering

pre isel intrinsic lowering

Definition at line 940 of file PreISelIntrinsicLowering.cpp.

◆ MemIntrinsicExpandSizeThresholdOpt

cl::opt< int64_t > MemIntrinsicExpandSizeThresholdOpt("mem-intrinsic-expand-size", cl::desc("Set minimum mem intrinsic size to expand in IR"), cl::init(-1), cl::Hidden) ( "mem-intrinsic-expand-size" ,
cl::desc("Set minimum mem intrinsic size to expand in IR") ,
cl::init(-1) ,
cl::Hidden  )
static

Threshold to leave statically sized memory intrinsic calls.

Calls of known size larger than this will be expanded by the pass. Calls of unknown or lower size will be left for expansion in codegen.