class SelectionDAGBuilder
Declaration
class SelectionDAGBuilder { /* full declaration omitted */ };
Description
SelectionDAGBuilder - This is the common target-independent lowering implementation that is parameterized by a TargetLowering object.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:96
Member Variables
- public SmallVector<llvm::SDValue, 8> PendingLoads
- Loads are not emitted to the program immediately. We bunch them up and then emit token factor nodes when possible. This allows us to get simple disambiguation between loads without worrying about alias analysis.
- public llvm::StatepointLoweringState StatepointLowering
- State used while lowering a statepoint sequence (gc_statepoint, gc_relocate, and gc_result). See StatepointLowering.hpp/cpp for details.
- public llvm::SelectionDAG& DAG
- public const llvm::DataLayout* DL = nullptr
- public llvm::AliasAnalysis* AA = nullptr
- public const llvm::TargetLibraryInfo* LibInfo
- public std::unique_ptr<SDAGSwitchLowering> SL
- public llvm::SelectionDAGBuilder:: StackProtectorDescriptor SPDescriptor
- A StackProtectorDescriptor structure used to communicate stack protector information in between SelectBasicBlock and FinishBasicBlock.
- public DenseMap<const llvm::Constant*, unsigned int> ConstantsOut
- public llvm::FunctionLoweringInfo& FuncInfo
- Information about the function as a whole.
- public llvm::SwiftErrorValueTracking& SwiftError
- Information about the swifterror values used throughout the function.
- public llvm::GCFunctionInfo* GFI
- Garbage collection metadata for the function.
- public DenseMap<llvm::MachineBasicBlock*, SmallVector<unsigned int, 4>> LPadToCallSiteMap
- Map a landing pad to the call site indexes.
- public bool HasTailCall = false
- This is set to true if a call in the current block has been translated as a tail call. In this case, no subsequent DAG nodes should be created.
- public llvm::LLVMContext* Context
- public static const unsigned int LowestSDNodeOrder = 1
- Lowest valid SDNodeOrder. The special case 0 is reserved for scheduling nodes without a corresponding SDNode.
Method Overview
- public void CopyToExportRegsIfNeeded(const llvm::Value * V)
- public void CopyValueToVirtualRegister(const llvm::Value * V, unsigned int Reg)
- public void EmitBranchForMergedCondition(const llvm::Value * Cond, llvm::MachineBasicBlock * TBB, llvm::MachineBasicBlock * FBB, llvm::MachineBasicBlock * CurBB, llvm::MachineBasicBlock * SwitchBB, llvm::BranchProbability TProb, llvm::BranchProbability FProb, bool InvertCond)
- public void ExportFromCurrentBlock(const llvm::Value * V)
- public void FindMergedConditions(const llvm::Value * Cond, llvm::MachineBasicBlock * TBB, llvm::MachineBasicBlock * FBB, llvm::MachineBasicBlock * CurBB, llvm::MachineBasicBlock * SwitchBB, Instruction::BinaryOps Opc, llvm::BranchProbability TProb, llvm::BranchProbability FProb, bool InvertCond)
- public llvm::SDValue LowerAsSTATEPOINT(llvm::SelectionDAGBuilder::StatepointLoweringInfo & SI)
- public void LowerCallSiteWithDeoptBundle(const llvm::CallBase * Call, llvm::SDValue Callee, const llvm::BasicBlock * EHPadBB)
- public void LowerCallSiteWithDeoptBundleImpl(const llvm::CallBase * Call, llvm::SDValue Callee, const llvm::BasicBlock * EHPadBB, bool VarArgDisallowed, bool ForceVoidReturnTy)
- public void LowerCallTo(llvm::ImmutableCallSite CS, llvm::SDValue Callee, bool IsTailCall, const llvm::BasicBlock * EHPadBB = nullptr)
- public void LowerDeoptimizeCall(const llvm::CallInst * CI)
- public void LowerDeoptimizingReturn()
- public void LowerStatepoint(llvm::ImmutableStatepoint ISP, const llvm::BasicBlock * EHPadBB = nullptr)
- public SelectionDAGBuilder(llvm::SelectionDAG & dag, llvm::FunctionLoweringInfo & funcinfo, llvm::SwiftErrorValueTracking & swifterror, CodeGenOpt::Level ol)
- public bool ShouldEmitAsBranches(const std::vector<SwitchCG::CaseBlock> & Cases)
- public void UpdateSplitBlock(llvm::MachineBasicBlock * First, llvm::MachineBasicBlock * Last)
- public void clear()
- public void clearDanglingDebugInfo()
- public void dropDanglingDebugInfo(const llvm::DILocalVariable * Variable, const llvm::DIExpression * Expr)
- public bool findValue(const llvm::Value * V) const
- public llvm::SDValue getControlRoot()
- public llvm::SDValue getCopyFromRegs(const llvm::Value * V, llvm::Type * Ty)
- public llvm::DebugLoc getCurDebugLoc() const
- public llvm::SDLoc getCurSDLoc() const
- public llvm::MVT getFrameIndexTy()
- public llvm::SDValue getMemoryRoot()
- public llvm::SDNode * getNodeForIRValue(const llvm::Value * V)
- public llvm::SDValue getNonRegisterValue(const llvm::Value * V)
- public llvm::SDValue getRoot()
- public llvm::SDValue getValue(const llvm::Value * V)
- public llvm::SDValue getValueImpl(const llvm::Value * V)
- public bool handleDebugValue(const llvm::Value * V, llvm::DILocalVariable * Var, llvm::DIExpression * Expr, llvm::DebugLoc CurDL, llvm::DebugLoc InstDL, unsigned int Order)
- public void init(llvm::GCFunctionInfo * gfi, llvm::AliasAnalysis * AA, const llvm::TargetLibraryInfo * li)
- public bool isExportableFromCurrentBlock(const llvm::Value * V, const llvm::BasicBlock * FromBB)
- public std::pair<SDValue, SDValue> lowerInvokable(TargetLowering::CallLoweringInfo & CLI, const llvm::BasicBlock * EHPadBB = nullptr)
- public llvm::SDValue lowerRangeToAssertZExt(llvm::SelectionDAG & DAG, const llvm::Instruction & I, llvm::SDValue Op)
- public void populateCallLoweringInfo(TargetLowering::CallLoweringInfo & CLI, const llvm::CallBase * Call, unsigned int ArgIdx, unsigned int NumArgs, llvm::SDValue Callee, llvm::Type * ReturnTy, bool IsPatchPoint)
- public void resolveDanglingDebugInfo(const llvm::Value * V, llvm::SDValue Val)
- public void resolveOrClearDbgInfo()
- public void salvageUnresolvedDbgValue(llvm::SelectionDAGBuilder::DanglingDebugInfo & DDI)
- public void setUnusedArgValue(const llvm::Value * V, llvm::SDValue NewN)
- public void setValue(const llvm::Value * V, llvm::SDValue NewN)
- public void visit(unsigned int Opcode, const llvm::User & I)
- public void visit(const llvm::Instruction & I)
- public void visitBitTestCase(SwitchCG::BitTestBlock & BB, llvm::MachineBasicBlock * NextMBB, llvm::BranchProbability BranchProbToNext, unsigned int Reg, SwitchCG::BitTestCase & B, llvm::MachineBasicBlock * SwitchBB)
- public void visitBitTestHeader(SwitchCG::BitTestBlock & B, llvm::MachineBasicBlock * SwitchBB)
- public void visitJumpTable(SwitchCG::JumpTable & JT)
- public void visitJumpTableHeader(SwitchCG::JumpTable & JT, SwitchCG::JumpTableHeader & JTH, llvm::MachineBasicBlock * SwitchBB)
- public void visitSPDescriptorFailure(llvm::SelectionDAGBuilder::StackProtectorDescriptor & SPD)
- public void visitSPDescriptorParent(llvm::SelectionDAGBuilder::StackProtectorDescriptor & SPD, llvm::MachineBasicBlock * ParentBB)
- public void visitSwitchCase(SwitchCG::CaseBlock & CB, llvm::MachineBasicBlock * SwitchBB)
Methods
¶void CopyToExportRegsIfNeeded(
const llvm::Value* V)
void CopyToExportRegsIfNeeded(
const llvm::Value* V)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:558
Parameters
- const llvm::Value* V
¶void CopyValueToVirtualRegister(
const llvm::Value* V,
unsigned int Reg)
void CopyValueToVirtualRegister(
const llvm::Value* V,
unsigned int Reg)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:486
Parameters
- const llvm::Value* V
- unsigned int Reg
¶void EmitBranchForMergedCondition(
const llvm::Value* Cond,
llvm::MachineBasicBlock* TBB,
llvm::MachineBasicBlock* FBB,
llvm::MachineBasicBlock* CurBB,
llvm::MachineBasicBlock* SwitchBB,
llvm::BranchProbability TProb,
llvm::BranchProbability FProb,
bool InvertCond)
void EmitBranchForMergedCondition(
const llvm::Value* Cond,
llvm::MachineBasicBlock* TBB,
llvm::MachineBasicBlock* FBB,
llvm::MachineBasicBlock* CurBB,
llvm::MachineBasicBlock* SwitchBB,
llvm::BranchProbability TProb,
llvm::BranchProbability FProb,
bool InvertCond)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:550
Parameters
- const llvm::Value* Cond
- llvm::MachineBasicBlock* TBB
- llvm::MachineBasicBlock* FBB
- llvm::MachineBasicBlock* CurBB
- llvm::MachineBasicBlock* SwitchBB
- llvm::BranchProbability TProb
- llvm::BranchProbability FProb
- bool InvertCond
¶void ExportFromCurrentBlock(const llvm::Value* V)
void ExportFromCurrentBlock(const llvm::Value* V)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:559
Parameters
- const llvm::Value* V
¶void FindMergedConditions(
const llvm::Value* Cond,
llvm::MachineBasicBlock* TBB,
llvm::MachineBasicBlock* FBB,
llvm::MachineBasicBlock* CurBB,
llvm::MachineBasicBlock* SwitchBB,
Instruction::BinaryOps Opc,
llvm::BranchProbability TProb,
llvm::BranchProbability FProb,
bool InvertCond)
void FindMergedConditions(
const llvm::Value* Cond,
llvm::MachineBasicBlock* TBB,
llvm::MachineBasicBlock* FBB,
llvm::MachineBasicBlock* CurBB,
llvm::MachineBasicBlock* SwitchBB,
Instruction::BinaryOps Opc,
llvm::BranchProbability TProb,
llvm::BranchProbability FProb,
bool InvertCond)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:545
Parameters
- const llvm::Value* Cond
- llvm::MachineBasicBlock* TBB
- llvm::MachineBasicBlock* FBB
- llvm::MachineBasicBlock* CurBB
- llvm::MachineBasicBlock* SwitchBB
- Instruction::BinaryOps Opc
- llvm::BranchProbability TProb
- llvm::BranchProbability FProb
- bool InvertCond
¶llvm::SDValue LowerAsSTATEPOINT(
llvm::SelectionDAGBuilder::
StatepointLoweringInfo& SI)
llvm::SDValue LowerAsSTATEPOINT(
llvm::SelectionDAGBuilder::
StatepointLoweringInfo& SI)
Description
Lower \p SLI into a STATEPOINT instruction.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:626
Parameters
¶void LowerCallSiteWithDeoptBundle(
const llvm::CallBase* Call,
llvm::SDValue Callee,
const llvm::BasicBlock* EHPadBB)
void LowerCallSiteWithDeoptBundle(
const llvm::CallBase* Call,
llvm::SDValue Callee,
const llvm::BasicBlock* EHPadBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:633
Parameters
- const llvm::CallBase* Call
- llvm::SDValue Callee
- const llvm::BasicBlock* EHPadBB
¶void LowerCallSiteWithDeoptBundleImpl(
const llvm::CallBase* Call,
llvm::SDValue Callee,
const llvm::BasicBlock* EHPadBB,
bool VarArgDisallowed,
bool ForceVoidReturnTy)
void LowerCallSiteWithDeoptBundleImpl(
const llvm::CallBase* Call,
llvm::SDValue Callee,
const llvm::BasicBlock* EHPadBB,
bool VarArgDisallowed,
bool ForceVoidReturnTy)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:639
Parameters
- const llvm::CallBase* Call
- llvm::SDValue Callee
- const llvm::BasicBlock* EHPadBB
- bool VarArgDisallowed
- bool ForceVoidReturnTy
¶void LowerCallTo(
llvm::ImmutableCallSite CS,
llvm::SDValue Callee,
bool IsTailCall,
const llvm::BasicBlock* EHPadBB = nullptr)
void LowerCallTo(
llvm::ImmutableCallSite CS,
llvm::SDValue Callee,
bool IsTailCall,
const llvm::BasicBlock* EHPadBB = nullptr)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:560
Parameters
- llvm::ImmutableCallSite CS
- llvm::SDValue Callee
- bool IsTailCall
- const llvm::BasicBlock* EHPadBB = nullptr
¶void LowerDeoptimizeCall(const llvm::CallInst* CI)
void LowerDeoptimizeCall(const llvm::CallInst* CI)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:636
Parameters
- const llvm::CallInst* CI
¶void LowerDeoptimizingReturn()
void LowerDeoptimizingReturn()
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:637
¶void LowerStatepoint(
llvm::ImmutableStatepoint ISP,
const llvm::BasicBlock* EHPadBB = nullptr)
void LowerStatepoint(
llvm::ImmutableStatepoint ISP,
const llvm::BasicBlock* EHPadBB = nullptr)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:630
Parameters
- llvm::ImmutableStatepoint ISP
- const llvm::BasicBlock* EHPadBB = nullptr
¶SelectionDAGBuilder(
llvm::SelectionDAG& dag,
llvm::FunctionLoweringInfo& funcinfo,
llvm::SwiftErrorValueTracking& swifterror,
CodeGenOpt::Level ol)
SelectionDAGBuilder(
llvm::SelectionDAG& dag,
llvm::FunctionLoweringInfo& funcinfo,
llvm::SwiftErrorValueTracking& swifterror,
CodeGenOpt::Level ol)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:440
Parameters
- llvm::SelectionDAG& dag
- llvm::FunctionLoweringInfo& funcinfo
- llvm::SwiftErrorValueTracking& swifterror
- CodeGenOpt::Level ol
¶bool ShouldEmitAsBranches(
const std::vector<SwitchCG::CaseBlock>& Cases)
bool ShouldEmitAsBranches(
const std::vector<SwitchCG::CaseBlock>& Cases)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:556
Parameters
- const std::vector<SwitchCG::CaseBlock>& Cases
¶void UpdateSplitBlock(
llvm::MachineBasicBlock* First,
llvm::MachineBasicBlock* Last)
void UpdateSplitBlock(
llvm::MachineBasicBlock* First,
llvm::MachineBasicBlock* Last)
Description
When an MBB was split during scheduling, update the references that need to refer to the last resulting block.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:579
Parameters
- llvm::MachineBasicBlock* First
- llvm::MachineBasicBlock* Last
¶void clear()
void clear()
Description
Clear out the current SelectionDAG and the associated state and prepare this SelectionDAGBuilder object to be used for a new block. This doesn't clear out information about additional blocks that are needed to complete switch lowering or PHI node updating; that information is cleared out as it is consumed.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:454
¶void clearDanglingDebugInfo()
void clearDanglingDebugInfo()
Description
Clear the dangling debug information map. This function is separated from the clear so that debug information that is dangling in a basic block can be properly resolved in a different basic block. This allows the SelectionDAG to resolve dangling debug information attached to PHI nodes.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:460
¶void dropDanglingDebugInfo(
const llvm::DILocalVariable* Variable,
const llvm::DIExpression* Expr)
void dropDanglingDebugInfo(
const llvm::DILocalVariable* Variable,
const llvm::DIExpression* Expr)
Description
If we have dangling debug info that describes \p Variable, or an overlapping part of variable considering the \p Expr, then this method will drop that debug info as it isn't valid any longer.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:499
Parameters
- const llvm::DILocalVariable* Variable
- const llvm::DIExpression* Expr
¶bool findValue(const llvm::Value* V) const
bool findValue(const llvm::Value* V) const
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:521
Parameters
- const llvm::Value* V
¶llvm::SDValue getControlRoot()
llvm::SDValue getControlRoot()
Description
Similar to getRoot, but instead of flushing all the PendingLoad items, flush all the PendingExports (and PendingConstrainedFPStrict) items. It is necessary to do this before emitting a terminator instruction.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:476
¶llvm::SDValue getCopyFromRegs(
const llvm::Value* V,
llvm::Type* Ty)
llvm::SDValue getCopyFromRegs(
const llvm::Value* V,
llvm::Type* Ty)
Description
If there was virtual register allocated for the value V emit CopyFromReg of the specified type Ty. Return empty SDValue() otherwise.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:494
Parameters
- const llvm::Value* V
- llvm::Type* Ty
¶llvm::DebugLoc getCurDebugLoc() const
llvm::DebugLoc getCurDebugLoc() const
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:482
¶llvm::SDLoc getCurSDLoc() const
llvm::SDLoc getCurSDLoc() const
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:478
¶llvm::MVT getFrameIndexTy()
llvm::MVT getFrameIndexTy()
Description
Returns the type of FrameIndex and TargetFrameIndex nodes.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:645
¶llvm::SDValue getMemoryRoot()
llvm::SDValue getMemoryRoot()
Description
Return the current virtual root of the Selection DAG, flushing any PendingLoad items. This must be done before emitting a store or any other memory node that may need to be ordered after any prior load instructions.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:465
¶llvm::SDNode* getNodeForIRValue(
const llvm::Value* V)
llvm::SDNode* getNodeForIRValue(
const llvm::Value* V)
Description
Return the SDNode for the specified IR value if it exists.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:524
Parameters
- const llvm::Value* V
¶llvm::SDValue getNonRegisterValue(
const llvm::Value* V)
llvm::SDValue getNonRegisterValue(
const llvm::Value* V)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:530
Parameters
- const llvm::Value* V
¶llvm::SDValue getRoot()
llvm::SDValue getRoot()
Description
Similar to getMemoryRoot, but also flushes PendingConstrainedFP(Strict) items. This must be done before emitting any call other any other node that may need to be ordered after FP instructions due to other side effects.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:471
¶llvm::SDValue getValue(const llvm::Value* V)
llvm::SDValue getValue(const llvm::Value* V)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:520
Parameters
- const llvm::Value* V
¶llvm::SDValue getValueImpl(const llvm::Value* V)
llvm::SDValue getValueImpl(const llvm::Value* V)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:531
Parameters
- const llvm::Value* V
¶bool handleDebugValue(const llvm::Value* V,
llvm::DILocalVariable* Var,
llvm::DIExpression* Expr,
llvm::DebugLoc CurDL,
llvm::DebugLoc InstDL,
unsigned int Order)
bool handleDebugValue(const llvm::Value* V,
llvm::DILocalVariable* Var,
llvm::DIExpression* Expr,
llvm::DebugLoc CurDL,
llvm::DebugLoc InstDL,
unsigned int Order)
Description
For a given Value, attempt to create and record a SDDbgValue in the SelectionDAG.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:513
Parameters
- const llvm::Value* V
- llvm::DILocalVariable* Var
- llvm::DIExpression* Expr
- llvm::DebugLoc CurDL
- llvm::DebugLoc InstDL
- unsigned int Order
¶void init(llvm::GCFunctionInfo* gfi,
llvm::AliasAnalysis* AA,
const llvm::TargetLibraryInfo* li)
void init(llvm::GCFunctionInfo* gfi,
llvm::AliasAnalysis* AA,
const llvm::TargetLibraryInfo* li)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:446
Parameters
- llvm::GCFunctionInfo* gfi
- llvm::AliasAnalysis* AA
- const llvm::TargetLibraryInfo* li
¶bool isExportableFromCurrentBlock(
const llvm::Value* V,
const llvm::BasicBlock* FromBB)
bool isExportableFromCurrentBlock(
const llvm::Value* V,
const llvm::BasicBlock* FromBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:557
Parameters
- const llvm::Value* V
- const llvm::BasicBlock* FromBB
¶std::pair<SDValue, SDValue> lowerInvokable(
TargetLowering::CallLoweringInfo& CLI,
const llvm::BasicBlock* EHPadBB = nullptr)
std::pair<SDValue, SDValue> lowerInvokable(
TargetLowering::CallLoweringInfo& CLI,
const llvm::BasicBlock* EHPadBB = nullptr)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:574
Parameters
- TargetLowering::CallLoweringInfo& CLI
- const llvm::BasicBlock* EHPadBB = nullptr
¶llvm::SDValue lowerRangeToAssertZExt(
llvm::SelectionDAG& DAG,
const llvm::Instruction& I,
llvm::SDValue Op)
llvm::SDValue lowerRangeToAssertZExt(
llvm::SelectionDAG& DAG,
const llvm::Instruction& I,
llvm::SDValue Op)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:565
Parameters
- llvm::SelectionDAG& DAG
- const llvm::Instruction& I
- llvm::SDValue Op
¶void populateCallLoweringInfo(
TargetLowering::CallLoweringInfo& CLI,
const llvm::CallBase* Call,
unsigned int ArgIdx,
unsigned int NumArgs,
llvm::SDValue Callee,
llvm::Type* ReturnTy,
bool IsPatchPoint)
void populateCallLoweringInfo(
TargetLowering::CallLoweringInfo& CLI,
const llvm::CallBase* Call,
unsigned int ArgIdx,
unsigned int NumArgs,
llvm::SDValue Callee,
llvm::Type* ReturnTy,
bool IsPatchPoint)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:568
Parameters
- TargetLowering::CallLoweringInfo& CLI
- const llvm::CallBase* Call
- unsigned int ArgIdx
- unsigned int NumArgs
- llvm::SDValue Callee
- llvm::Type* ReturnTy
- bool IsPatchPoint
¶void resolveDanglingDebugInfo(
const llvm::Value* V,
llvm::SDValue Val)
void resolveDanglingDebugInfo(
const llvm::Value* V,
llvm::SDValue Val)
Description
If we saw an earlier dbg_value referring to V, generate the debug data structures now that we've seen its definition.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:504
Parameters
- const llvm::Value* V
- llvm::SDValue Val
¶void resolveOrClearDbgInfo()
void resolveOrClearDbgInfo()
Description
Evict any dangling debug information, attempting to salvage it first.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:518
¶void salvageUnresolvedDbgValue(
llvm::SelectionDAGBuilder::DanglingDebugInfo&
DDI)
void salvageUnresolvedDbgValue(
llvm::SelectionDAGBuilder::DanglingDebugInfo&
DDI)
Description
For the given dangling debuginfo record, perform last-ditch efforts to resolve the debuginfo to something that is represented in this DAG. If this cannot be done, produce an Undef debug value record.
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:509
Parameters
¶void setUnusedArgValue(const llvm::Value* V,
llvm::SDValue NewN)
void setUnusedArgValue(const llvm::Value* V,
llvm::SDValue NewN)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:539
Parameters
- const llvm::Value* V
- llvm::SDValue NewN
¶void setValue(const llvm::Value* V,
llvm::SDValue NewN)
void setValue(const llvm::Value* V,
llvm::SDValue NewN)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:533
Parameters
- const llvm::Value* V
- llvm::SDValue NewN
¶void visit(unsigned int Opcode,
const llvm::User& I)
void visit(unsigned int Opcode,
const llvm::User& I)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:490
Parameters
- unsigned int Opcode
- const llvm::User& I
¶void visit(const llvm::Instruction& I)
void visit(const llvm::Instruction& I)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:488
Parameters
- const llvm::Instruction& I
¶void visitBitTestCase(
SwitchCG::BitTestBlock& BB,
llvm::MachineBasicBlock* NextMBB,
llvm::BranchProbability BranchProbToNext,
unsigned int Reg,
SwitchCG::BitTestCase& B,
llvm::MachineBasicBlock* SwitchBB)
void visitBitTestCase(
SwitchCG::BitTestBlock& BB,
llvm::MachineBasicBlock* NextMBB,
llvm::BranchProbability BranchProbToNext,
unsigned int Reg,
SwitchCG::BitTestCase& B,
llvm::MachineBasicBlock* SwitchBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:675
Parameters
- SwitchCG::BitTestBlock& BB
- llvm::MachineBasicBlock* NextMBB
- llvm::BranchProbability BranchProbToNext
- unsigned int Reg
- SwitchCG::BitTestCase& B
- llvm::MachineBasicBlock* SwitchBB
¶void visitBitTestHeader(
SwitchCG::BitTestBlock& B,
llvm::MachineBasicBlock* SwitchBB)
void visitBitTestHeader(
SwitchCG::BitTestBlock& B,
llvm::MachineBasicBlock* SwitchBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:673
Parameters
- SwitchCG::BitTestBlock& B
- llvm::MachineBasicBlock* SwitchBB
¶void visitJumpTable(SwitchCG::JumpTable& JT)
void visitJumpTable(SwitchCG::JumpTable& JT)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:678
Parameters
¶void visitJumpTableHeader(
SwitchCG::JumpTable& JT,
SwitchCG::JumpTableHeader& JTH,
llvm::MachineBasicBlock* SwitchBB)
void visitJumpTableHeader(
SwitchCG::JumpTable& JT,
SwitchCG::JumpTableHeader& JTH,
llvm::MachineBasicBlock* SwitchBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:679
Parameters
- SwitchCG::JumpTable& JT
- SwitchCG::JumpTableHeader& JTH
- llvm::MachineBasicBlock* SwitchBB
¶void visitSPDescriptorFailure(
llvm::SelectionDAGBuilder::
StackProtectorDescriptor& SPD)
void visitSPDescriptorFailure(
llvm::SelectionDAGBuilder::
StackProtectorDescriptor& SPD)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:672
Parameters
- llvm::SelectionDAGBuilder:: StackProtectorDescriptor& SPD
¶void visitSPDescriptorParent(
llvm::SelectionDAGBuilder::
StackProtectorDescriptor& SPD,
llvm::MachineBasicBlock* ParentBB)
void visitSPDescriptorParent(
llvm::SelectionDAGBuilder::
StackProtectorDescriptor& SPD,
llvm::MachineBasicBlock* ParentBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:670
Parameters
- llvm::SelectionDAGBuilder:: StackProtectorDescriptor& SPD
- llvm::MachineBasicBlock* ParentBB
¶void visitSwitchCase(
SwitchCG::CaseBlock& CB,
llvm::MachineBasicBlock* SwitchBB)
void visitSwitchCase(
SwitchCG::CaseBlock& CB,
llvm::MachineBasicBlock* SwitchBB)
Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:669
Parameters
- SwitchCG::CaseBlock& CB
- llvm::MachineBasicBlock* SwitchBB