LLVM 22.0.0git
llvm::SwitchCG::CaseBlock Struct Reference

This structure is used to communicate between SelectionDAGBuilder and SDISel for the code generation of additional basic blocks needed by multi-case switch statements. More...

#include "llvm/CodeGen/SwitchLoweringUtils.h"

Classes

struct  PredInfoPair

Public Member Functions

 CaseBlock (ISD::CondCode cc, const Value *cmplhs, const Value *cmprhs, const Value *cmpmiddle, MachineBasicBlock *truebb, MachineBasicBlock *falsebb, MachineBasicBlock *me, SDLoc dl, BranchProbability trueprob=BranchProbability::getUnknown(), BranchProbability falseprob=BranchProbability::getUnknown(), bool isunpredictable=false)
 CaseBlock (CmpInst::Predicate pred, bool nocmp, const Value *cmplhs, const Value *cmprhs, const Value *cmpmiddle, MachineBasicBlock *truebb, MachineBasicBlock *falsebb, MachineBasicBlock *me, DebugLoc dl, BranchProbability trueprob=BranchProbability::getUnknown(), BranchProbability falseprob=BranchProbability::getUnknown(), bool isunpredictable=false)

Public Attributes

union { 
   ISD::CondCode   CC 
   struct PredInfoPair   PredInfo 
}; 
const ValueCmpLHS
const ValueCmpMHS
const ValueCmpRHS
MachineBasicBlockTrueBB
MachineBasicBlockFalseBB
MachineBasicBlockThisBB
SDLoc DL
 The debug location of the instruction this CaseBlock was produced from.
DebugLoc DbgLoc
BranchProbability TrueProb
BranchProbability FalseProb
bool IsUnpredictable

Detailed Description

This structure is used to communicate between SelectionDAGBuilder and SDISel for the code generation of additional basic blocks needed by multi-case switch statements.

Definition at line 109 of file SwitchLoweringUtils.h.

Constructor & Destructor Documentation

◆ CaseBlock() [1/2]

llvm::SwitchCG::CaseBlock::CaseBlock ( ISD::CondCode cc,
const Value * cmplhs,
const Value * cmprhs,
const Value * cmpmiddle,
MachineBasicBlock * truebb,
MachineBasicBlock * falsebb,
MachineBasicBlock * me,
SDLoc dl,
BranchProbability trueprob = BranchProbability::getUnknown(),
BranchProbability falseprob = BranchProbability::getUnknown(),
bool isunpredictable = false )
inline

◆ CaseBlock() [2/2]

llvm::SwitchCG::CaseBlock::CaseBlock ( CmpInst::Predicate pred,
bool nocmp,
const Value * cmplhs,
const Value * cmprhs,
const Value * cmpmiddle,
MachineBasicBlock * truebb,
MachineBasicBlock * falsebb,
MachineBasicBlock * me,
DebugLoc dl,
BranchProbability trueprob = BranchProbability::getUnknown(),
BranchProbability falseprob = BranchProbability::getUnknown(),
bool isunpredictable = false )
inline

Definition at line 157 of file SwitchLoweringUtils.h.

References llvm::BranchProbability::getUnknown(), and PredInfo.

Member Data Documentation

◆ [union]

◆ CC

ISD::CondCode llvm::SwitchCG::CaseBlock::CC

Definition at line 120 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ CmpLHS

const Value* llvm::SwitchCG::CaseBlock::CmpLHS

Definition at line 127 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ CmpMHS

const Value * llvm::SwitchCG::CaseBlock::CmpMHS

Definition at line 127 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ CmpRHS

const Value * llvm::SwitchCG::CaseBlock::CmpRHS

Definition at line 127 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ DbgLoc

DebugLoc llvm::SwitchCG::CaseBlock::DbgLoc

Definition at line 138 of file SwitchLoweringUtils.h.

◆ DL

SDLoc llvm::SwitchCG::CaseBlock::DL

The debug location of the instruction this CaseBlock was produced from.

Definition at line 137 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ FalseBB

MachineBasicBlock * llvm::SwitchCG::CaseBlock::FalseBB

Definition at line 130 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ FalseProb

BranchProbability llvm::SwitchCG::CaseBlock::FalseProb

Definition at line 141 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ IsUnpredictable

bool llvm::SwitchCG::CaseBlock::IsUnpredictable

Definition at line 142 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ PredInfo

struct PredInfoPair llvm::SwitchCG::CaseBlock::PredInfo

Definition at line 121 of file SwitchLoweringUtils.h.

Referenced by CaseBlock().

◆ ThisBB

MachineBasicBlock* llvm::SwitchCG::CaseBlock::ThisBB

Definition at line 133 of file SwitchLoweringUtils.h.

Referenced by CaseBlock().

◆ TrueBB

MachineBasicBlock* llvm::SwitchCG::CaseBlock::TrueBB

Definition at line 130 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().

◆ TrueProb

BranchProbability llvm::SwitchCG::CaseBlock::TrueProb

Definition at line 141 of file SwitchLoweringUtils.h.

Referenced by CaseBlock(), and llvm::SelectionDAGBuilder::visitSwitchCase().


The documentation for this struct was generated from the following file: