Go to the documentation of this file.
35 while (StateBB != StateE) {
41 if (!isa<ReturnInst>(TI) && !isa<ResumeInst>(TI))
52 if (!HandleExceptions)
63 if (
CallInst *CI = dyn_cast<CallInst>(&II))
64 if (!CI->doesNotThrow() && !CI->isMustTailCall())
74 if (!
F.hasPersonalityFn()) {
76 F.setPersonalityFn(cast<Constant>(PersFn.
getCallee()));
91 for (
unsigned I = Calls.size();
I != 0;) {
92 CallInst *CI = cast<CallInst>(Calls[--
I]);
static LandingPadInst * Create(Type *RetTy, unsigned NumReservedClauses, const Twine &NameStr="", Instruction *InsertBefore=nullptr)
Constructors - NumReservedClauses is a hint for the number of incoming clauses that this landingpad w...
void SetInsertPoint(BasicBlock *TheBB)
This specifies that created instructions should be appended to the end of the specified block.
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
static StructType * get(LLVMContext &Context, ArrayRef< Type * > Elements, bool isPacked=false)
This static method is the primary way to create a literal StructType.
static PointerType * getInt8PtrTy(LLVMContext &C, unsigned AS=0)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
The landingpad instruction holds all of the information necessary to generate correct exception handl...
static FunctionType * get(Type *Result, ArrayRef< Type * > Params, bool isVarArg)
This static method is the primary way of constructing a FunctionType.
Triple - Helper class for working with autoconf configuration names.
The instances of the Type class are immutable: once they are created, they are never changed.
static IntegerType * getInt32Ty(LLVMContext &C)
LLVM Basic Block Representation.
static FunctionCallee getDefaultPersonalityFn(Module *M)
EHPersonality classifyEHPersonality(const Value *Pers)
See if the given exception handling personality function is one that we understand.
(vector float) vec_cmpeq(*A, *B) C
void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
static ResumeInst * Create(Value *Exn, Instruction *InsertBefore=nullptr)
This is an important class for using LLVM in a threaded context.
bool isScopedEHPersonality(EHPersonality Pers)
Returns true if this personality uses scope-style EH IR instructions: catchswitch,...
StringRef getEHPersonalityName(EHPersonality Pers)
A Module instance is used to store all the information related to an LLVM module.
BasicBlock * changeToInvokeAndSplitBasicBlock(CallInst *CI, BasicBlock *UnwindEdge, DomTreeUpdater *DTU=nullptr)
Convert the CallInst to InvokeInst with the specified unwind edge basic block.
static BasicBlock * Create(LLVMContext &Context, const Twine &Name="", Function *Parent=nullptr, BasicBlock *InsertBefore=nullptr)
Creates a new BasicBlock.
EHPersonality getDefaultEHPersonality(const Triple &T)
bool doesNotThrow() const
Determine if the function cannot unwind.
Resume the propagation of an exception.
A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single enti...
const Instruction * getTerminator() const LLVM_READONLY
Returns the terminator instruction if the block is well formed or null if the block is not well forme...
This class represents a function call, abstracting a target machine's calling convention.
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB
constexpr char Args[]
Key for Kernel::Metadata::mArgs.
const CallInst * getTerminatingMustTailCall() const
Returns the call instruction marked 'musttail' prior to the terminating return instruction of this ba...
void setCleanup(bool V)
Indicate that this landingpad instruction is a cleanup.