class SwitchLowering

Declaration

class SwitchLowering { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:249

Member Variables

public std::vector<CaseBlock> SwitchCases
Vector of CaseBlock structures used to communicate SwitchInst code generation information.
public std::vector<JumpTableBlock> JTCases
Vector of JumpTable structures used to communicate SwitchInst code generation information.
public std::vector<BitTestBlock> BitTestCases
Vector of BitTestBlock structures used to communicate SwitchInst code generation information.
private const llvm::TargetLowering* TLI
private const llvm::TargetMachine* TM
private const llvm::DataLayout* DL
private llvm::FunctionLoweringInfo& FuncInfo

Method Overview

  • public SwitchLowering(llvm::FunctionLoweringInfo & funcinfo)
  • public virtual void addSuccessorWithProb(llvm::MachineBasicBlock * Src, llvm::MachineBasicBlock * Dst, llvm::BranchProbability Prob = BranchProbability::getUnknown())
  • public bool buildBitTests(llvm::SwitchCG::CaseClusterVector & Clusters, unsigned int First, unsigned int Last, const llvm::SwitchInst * SI, llvm::SwitchCG::CaseCluster & BTCluster)
  • public bool buildJumpTable(const llvm::SwitchCG::CaseClusterVector & Clusters, unsigned int First, unsigned int Last, const llvm::SwitchInst * SI, llvm::MachineBasicBlock * DefaultMBB, llvm::SwitchCG::CaseCluster & JTCluster)
  • public void findBitTestClusters(llvm::SwitchCG::CaseClusterVector & Clusters, const llvm::SwitchInst * SI)
  • public void findJumpTables(llvm::SwitchCG::CaseClusterVector & Clusters, const llvm::SwitchInst * SI, llvm::MachineBasicBlock * DefaultMBB, llvm::ProfileSummaryInfo * PSI, llvm::BlockFrequencyInfo * BFI)
  • public void init(const llvm::TargetLowering & tli, const llvm::TargetMachine & tm, const llvm::DataLayout & dl)
  • public virtual ~SwitchLowering()

Methods

SwitchLowering(
    llvm::FunctionLoweringInfo& funcinfo)

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:251

Parameters

llvm::FunctionLoweringInfo& funcinfo

virtual void addSuccessorWithProb(
    llvm::MachineBasicBlock* Src,
    llvm::MachineBasicBlock* Dst,
    llvm::BranchProbability Prob =
        BranchProbability::getUnknown())

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:288

Parameters

llvm::MachineBasicBlock* Src
llvm::MachineBasicBlock* Dst
llvm::BranchProbability Prob = BranchProbability::getUnknown()

bool buildBitTests(
    llvm::SwitchCG::CaseClusterVector& Clusters,
    unsigned int First,
    unsigned int Last,
    const llvm::SwitchInst* SI,
    llvm::SwitchCG::CaseCluster& BTCluster)

Description

Build a bit test cluster from Clusters[First..Last]. Returns false if it decides it's not a good idea.

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:285

Parameters

llvm::SwitchCG::CaseClusterVector& Clusters
unsigned int First
unsigned int Last
const llvm::SwitchInst* SI
llvm::SwitchCG::CaseCluster& BTCluster

bool buildJumpTable(
    const llvm::SwitchCG::CaseClusterVector&
        Clusters,
    unsigned int First,
    unsigned int Last,
    const llvm::SwitchInst* SI,
    llvm::MachineBasicBlock* DefaultMBB,
    llvm::SwitchCG::CaseCluster& JTCluster)

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:276

Parameters

const llvm::SwitchCG::CaseClusterVector& Clusters
unsigned int First
unsigned int Last
const llvm::SwitchInst* SI
llvm::MachineBasicBlock* DefaultMBB
llvm::SwitchCG::CaseCluster& JTCluster

void findBitTestClusters(
    llvm::SwitchCG::CaseClusterVector& Clusters,
    const llvm::SwitchInst* SI)

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:281

Parameters

llvm::SwitchCG::CaseClusterVector& Clusters
const llvm::SwitchInst* SI

void findJumpTables(
    llvm::SwitchCG::CaseClusterVector& Clusters,
    const llvm::SwitchInst* SI,
    llvm::MachineBasicBlock* DefaultMBB,
    llvm::ProfileSummaryInfo* PSI,
    llvm::BlockFrequencyInfo* BFI)

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:272

Parameters

llvm::SwitchCG::CaseClusterVector& Clusters
const llvm::SwitchInst* SI
llvm::MachineBasicBlock* DefaultMBB
llvm::ProfileSummaryInfo* PSI
llvm::BlockFrequencyInfo* BFI

void init(const llvm::TargetLowering& tli,
          const llvm::TargetMachine& tm,
          const llvm::DataLayout& dl)

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:253

Parameters

const llvm::TargetLowering& tli
const llvm::TargetMachine& tm
const llvm::DataLayout& dl

virtual ~SwitchLowering()

Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:292