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)
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())
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)
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)
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)
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)
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)
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()
virtual ~SwitchLowering()
Declared at: llvm/include/llvm/CodeGen/SwitchLoweringUtils.h:292