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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:558

Parameters

const llvm::Value* V

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)

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)

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)

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)

Description

Lower \p SLI into a STATEPOINT instruction.

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:626

Parameters

llvm::SelectionDAGBuilder::StatepointLoweringInfo& SI

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)

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)

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:636

Parameters

const llvm::CallInst* CI

void LowerDeoptimizingReturn()

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:637

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)

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:556

Parameters

const std::vector<SwitchCG::CaseBlock>& Cases

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()

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()

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)

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

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:521

Parameters

const llvm::Value* V

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)

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

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:482

llvm::SDLoc getCurSDLoc() const

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:478

llvm::MVT getFrameIndexTy()

Description

Returns the type of FrameIndex and TargetFrameIndex nodes.

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:645

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)

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:530

Parameters

const llvm::Value* V

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:520

Parameters

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)

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)

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)

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)

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)

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)

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)

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()

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)

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

llvm::SelectionDAGBuilder::DanglingDebugInfo& DDI

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)

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:490

Parameters

unsigned int Opcode
const llvm::User& 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)

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:673

Parameters

SwitchCG::BitTestBlock& B
llvm::MachineBasicBlock* SwitchBB

void visitJumpTable(SwitchCG::JumpTable& JT)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:678

Parameters

SwitchCG::JumpTable& JT

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:672

Parameters

llvm::SelectionDAGBuilder:: StackProtectorDescriptor& SPD

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h:669

Parameters

SwitchCG::CaseBlock& CB
llvm::MachineBasicBlock* SwitchBB