LLVM 20.0.0git
|
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 | |
SwitchInst * | operator-> () |
SwitchInst & | operator* () |
operator SwitchInst * () | |
SwitchInstProfUpdateWrapper (SwitchInst &SI) | |
~SwitchInstProfUpdateWrapper () | |
SwitchInst::CaseIt | removeCase (SwitchInst::CaseIt I) |
Delegate the call to the underlying SwitchInst::removeCase() and remove correspondent branch weight. | |
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. | |
Instruction::InstListType::iterator | eraseFromParent () |
Delegate the call to the underlying SwitchInst::eraseFromParent() and mark this object to not touch the underlying SwitchInst in destructor. | |
void | setSuccessorWeight (unsigned idx, CaseWeightOpt W) |
CaseWeightOpt | getSuccessorWeight (unsigned idx) |
Static Public Member Functions | |
static CaseWeightOpt | getSuccessorWeight (const SwitchInst &SI, unsigned idx) |
Protected Member Functions | |
MDNode * | buildProfBranchWeightsMD () |
void | init () |
A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata.
Definition at line 3390 of file Instructions.h.
using llvm::SwitchInstProfUpdateWrapper::CaseWeightOpt = std::optional<uint32_t> |
Definition at line 3401 of file Instructions.h.
|
inline |
Definition at line 3406 of file Instructions.h.
References init().
|
inline |
Definition at line 3408 of file Instructions.h.
References buildProfBranchWeightsMD().
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 4032 of file Instructions.cpp.
References assert().
Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().
|
protected |
Definition at line 3984 of file Instructions.cpp.
References llvm::all_of(), assert(), and llvm::MDBuilder::createBranchWeights().
Referenced by ~SwitchInstProfUpdateWrapper().
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 4051 of file Instructions.cpp.
Referenced by unswitchTrivialSwitch().
|
static |
Definition at line 4084 of file Instructions.cpp.
References llvm::getBranchWeightMDNode().
SwitchInstProfUpdateWrapper::CaseWeightOpt SwitchInstProfUpdateWrapper::getSuccessorWeight | ( | unsigned | idx | ) |
Definition at line 4060 of file Instructions.cpp.
Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().
|
protected |
Definition at line 4001 of file Instructions.cpp.
References llvm::extractBranchWeights(), llvm::getBranchWeightMDNode(), llvm::getNumBranchWeights(), and llvm_unreachable.
Referenced by SwitchInstProfUpdateWrapper().
|
inline |
Definition at line 3404 of file Instructions.h.
|
inline |
Definition at line 3403 of file Instructions.h.
|
inline |
Definition at line 3402 of file Instructions.h.
SwitchInst::CaseIt SwitchInstProfUpdateWrapper::removeCase | ( | SwitchInst::CaseIt | I | ) |
Delegate the call to the underlying SwitchInst::removeCase() and remove correspondent branch weight.
Definition at line 4018 of file Instructions.cpp.
Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().
void SwitchInstProfUpdateWrapper::setSuccessorWeight | ( | unsigned | idx, |
SwitchInstProfUpdateWrapper::CaseWeightOpt | W | ||
) |
Definition at line 4066 of file Instructions.cpp.
Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().