LLVM 22.0.0git
llvm::SwitchInstProfUpdateWrapper Class Reference

A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata. More...

#include "llvm/IR/Instructions.h"

Public Types

using CaseWeightOpt = std::optional<uint32_t>

Public Member Functions

SwitchInstoperator-> ()
SwitchInstoperator* ()
 operator SwitchInst * ()
 SwitchInstProfUpdateWrapper (SwitchInst &SI)
 ~SwitchInstProfUpdateWrapper ()
LLVM_ABI SwitchInst::CaseIt removeCase (SwitchInst::CaseIt I)
 Delegate the call to the underlying SwitchInst::removeCase() and remove correspondent branch weight.
LLVM_ABI void addCase (ConstantInt *OnVal, BasicBlock *Dest, CaseWeightOpt W)
 Delegate the call to the underlying SwitchInst::addCase() and set the specified branch weight for the added case.
LLVM_ABI Instruction::InstListType::iterator eraseFromParent ()
 Delegate the call to the underlying SwitchInst::eraseFromParent() and mark this object to not touch the underlying SwitchInst in destructor.
LLVM_ABI void setSuccessorWeight (unsigned idx, CaseWeightOpt W)
LLVM_ABI CaseWeightOpt getSuccessorWeight (unsigned idx)

Static Public Member Functions

static LLVM_ABI CaseWeightOpt getSuccessorWeight (const SwitchInst &SI, unsigned idx)

Protected Member Functions

LLVM_ABI MDNodebuildProfBranchWeightsMD ()
LLVM_ABI void init ()

Detailed Description

A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata.

Definition at line 3533 of file Instructions.h.

Member Typedef Documentation

◆ CaseWeightOpt

Definition at line 3544 of file Instructions.h.

Constructor & Destructor Documentation

◆ SwitchInstProfUpdateWrapper()

llvm::SwitchInstProfUpdateWrapper::SwitchInstProfUpdateWrapper ( SwitchInst & SI)
inline

Definition at line 3549 of file Instructions.h.

References init().

◆ ~SwitchInstProfUpdateWrapper()

llvm::SwitchInstProfUpdateWrapper::~SwitchInstProfUpdateWrapper ( )
inline

Definition at line 3551 of file Instructions.h.

References buildProfBranchWeightsMD().

Member Function Documentation

◆ addCase()

void SwitchInstProfUpdateWrapper::addCase ( ConstantInt * OnVal,
BasicBlock * Dest,
SwitchInstProfUpdateWrapper::CaseWeightOpt W )

Delegate the call to the underlying SwitchInst::addCase() and set the specified branch weight for the added case.

Definition at line 4190 of file Instructions.cpp.

References assert(), and llvm::SmallVector.

Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().

◆ buildProfBranchWeightsMD()

MDNode * SwitchInstProfUpdateWrapper::buildProfBranchWeightsMD ( )
protected

◆ eraseFromParent()

Instruction::InstListType::iterator SwitchInstProfUpdateWrapper::eraseFromParent ( )

Delegate the call to the underlying SwitchInst::eraseFromParent() and mark this object to not touch the underlying SwitchInst in destructor.

Definition at line 4209 of file Instructions.cpp.

Referenced by unswitchTrivialSwitch().

◆ getSuccessorWeight() [1/2]

SwitchInstProfUpdateWrapper::CaseWeightOpt SwitchInstProfUpdateWrapper::getSuccessorWeight ( const SwitchInst & SI,
unsigned idx )
static

Definition at line 4242 of file Instructions.cpp.

References llvm::mdconst::extract(), and llvm::getBranchWeightMDNode().

◆ getSuccessorWeight() [2/2]

SwitchInstProfUpdateWrapper::CaseWeightOpt SwitchInstProfUpdateWrapper::getSuccessorWeight ( unsigned idx)

Definition at line 4218 of file Instructions.cpp.

Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().

◆ init()

void SwitchInstProfUpdateWrapper::init ( )
protected

◆ operator SwitchInst *()

llvm::SwitchInstProfUpdateWrapper::operator SwitchInst * ( )
inline

Definition at line 3547 of file Instructions.h.

◆ operator*()

SwitchInst & llvm::SwitchInstProfUpdateWrapper::operator* ( )
inline

Definition at line 3546 of file Instructions.h.

◆ operator->()

SwitchInst * llvm::SwitchInstProfUpdateWrapper::operator-> ( )
inline

Definition at line 3545 of file Instructions.h.

◆ removeCase()

SwitchInst::CaseIt SwitchInstProfUpdateWrapper::removeCase ( SwitchInst::CaseIt I)

Delegate the call to the underlying SwitchInst::removeCase() and remove correspondent branch weight.

Definition at line 4176 of file Instructions.cpp.

References assert(), and I.

Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().

◆ setSuccessorWeight()

void SwitchInstProfUpdateWrapper::setSuccessorWeight ( unsigned idx,
SwitchInstProfUpdateWrapper::CaseWeightOpt W )

Definition at line 4224 of file Instructions.cpp.

References llvm::SmallVector.

Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().


The documentation for this class was generated from the following files: