LLVM 20.0.0git
|
#include "llvm/CodeGen/PreISelIntrinsicLowering.h"
#include "llvm/Analysis/ObjCARCInstKind.h"
#include "llvm/Analysis/ObjCARCUtil.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/ExpandVectorPredication.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Use.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Transforms/Scalar/LowerConstantIntrinsics.h"
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
#include "llvm/IR/VPIntrinsics.def"
Go to the source code of this file.
Macros | |
#define | BEGIN_REGISTER_VP_INTRINSIC(VPID, MASKPOS, VLENPOS) case Intrinsic::VPID: |
Functions | |
template<class T > | |
static bool | forEachCall (Function &Intrin, T Callback) |
static bool | lowerLoadRelative (Function &F) |
static CallInst::TailCallKind | getOverridingTailCallKind (const Function &F) |
static bool | lowerObjCCall (Function &F, const char *NewFn, bool setNonLazyBind=false) |
static bool | canEmitLibcall (const TargetMachine *TM, Function *F, RTLIB::Libcall LC) |
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 |
#define BEGIN_REGISTER_VP_INTRINSIC | ( | VPID, | |
MASKPOS, | |||
VLENPOS | |||
) | case Intrinsic::VPID: |
|
static |
Definition at line 226 of file PreISelIntrinsicLowering.cpp.
References llvm::TargetLoweringBase::getLibcallName().
Definition at line 75 of file PreISelIntrinsicLowering.cpp.
References llvm::Value::use_begin(), and llvm::Value::use_empty().
|
static |
Definition at line 125 of file PreISelIntrinsicLowering.cpp.
References F, llvm::objcarc::GetFunctionClass(), llvm::objcarc::IsAlwaysTail(), llvm::objcarc::IsNeverTail(), llvm::CallInst::TCK_None, llvm::CallInst::TCK_NoTail, and llvm::CallInst::TCK_Tail.
Referenced by lowerObjCCall().
INITIALIZE_PASS_BEGIN | ( | PreISelIntrinsicLoweringLegacyPass | , |
"pre-isel-intrinsic-lowering" | , | ||
"Pre-ISel Intrinsic Lowering" | , | ||
false | , | ||
false | |||
) |
Definition at line 96 of file PreISelIntrinsicLowering.cpp.
References B, F, llvm::Type::getInt32Ty(), and llvm::make_early_inc_range().
Definition at line 134 of file PreISelIntrinsicLowering.cpp.
References llvm::CallBase::addParamAttr(), assert(), llvm::IRBuilderBase::CreateCall(), F, llvm::AttributeList::FirstArgIndex, llvm::objcarc::getAttachedARCFunctionKind(), llvm::FunctionCallee::getCallee(), getOverridingTailCallKind(), llvm::make_early_inc_range(), llvm::IntrinsicInst::mayLowerToFunctionCall(), llvm::Value::setName(), setNonLazyBind(), and llvm::CallInst::setTailCallKind().
pre isel intrinsic Pre ISel Intrinsic false |
Definition at line 493 of file PreISelIntrinsicLowering.cpp.
pre isel intrinsic lowering |
Definition at line 492 of file PreISelIntrinsicLowering.cpp.
pre isel intrinsic Pre ISel Intrinsic Lowering |
Definition at line 493 of file PreISelIntrinsicLowering.cpp.
|
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.