LLVM
12.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 = 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. More... | |
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. More... | |
SymbolTableList< Instruction >::iterator | eraseFromParent () |
Delegate the call to the underlying SwitchInst::eraseFromParent() and mark this object to not touch the underlying SwitchInst in destructor. More... | |
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 () |
Static Protected Member Functions | |
static MDNode * | getProfBranchWeightsMD (const SwitchInst &SI) |
A wrapper class to simplify modification of SwitchInst cases along with their prof branch_weights metadata.
Definition at line 3505 of file Instructions.h.
Definition at line 3518 of file Instructions.h.
|
inline |
Definition at line 3523 of file Instructions.h.
|
inline |
Definition at line 3525 of file Instructions.h.
References buildProfBranchWeightsMD(), and SI.
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 4132 of file Instructions.cpp.
References assert(), SI, and llvm::RISCVFenceField::W.
|
protected |
Definition at line 4080 of file Instructions.cpp.
References llvm::all_of(), assert(), SI, and llvm::RISCVFenceField::W.
Referenced by ~SwitchInstProfUpdateWrapper().
SymbolTableList< Instruction >::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 4151 of file Instructions.cpp.
References SI.
Referenced by unswitchTrivialSwitch().
|
staticprotected |
Definition at line 4072 of file Instructions.cpp.
References SI.
Referenced by getSuccessorWeight(), and init().
SwitchInstProfUpdateWrapper::CaseWeightOpt SwitchInstProfUpdateWrapper::getSuccessorWeight | ( | unsigned | idx | ) |
Definition at line 4160 of file Instructions.cpp.
References llvm::None.
Referenced by unswitchTrivialSwitch().
|
static |
Definition at line 4184 of file Instructions.cpp.
References getProfBranchWeightsMD(), llvm::None, and SI.
|
protected |
Definition at line 4098 of file Instructions.cpp.
References C, llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), getProfBranchWeightsMD(), llvm_unreachable, llvm::move(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and SI.
Referenced by SwitchInstProfUpdateWrapper().
|
inline |
Definition at line 3520 of file Instructions.h.
References SI.
|
inline |
Definition at line 3521 of file Instructions.h.
References SI.
|
inline |
Definition at line 3519 of file Instructions.h.
References SI.
SwitchInst::CaseIt SwitchInstProfUpdateWrapper::removeCase | ( | SwitchInst::CaseIt | I | ) |
Delegate the call to the underlying SwitchInst::removeCase() and remove correspondent branch weight.
Definition at line 4118 of file Instructions.cpp.
References assert(), I, and SI.
Referenced by eliminateDeadSwitchCases(), and unswitchTrivialSwitch().
void SwitchInstProfUpdateWrapper::setSuccessorWeight | ( | unsigned | idx, |
SwitchInstProfUpdateWrapper::CaseWeightOpt | W | ||
) |
Definition at line 4166 of file Instructions.cpp.
References SI, and llvm::RISCVFenceField::W.
Referenced by unswitchTrivialSwitch().