class TLSVariableHoistPass
Declaration
class TLSVariableHoistPass : public PassInfoMixin { /* full declaration omitted */ };
Description
A CRTP mix-in to automatically provide informational APIs needed for passes. This provides some boilerplate for types that are passes.
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:103
Inherits from: PassInfoMixin
Member Variables
- private llvm::DominatorTree* DT
- private llvm::LoopInfo* LI
- private llvm::TLSVariableHoistPass::TLSCandMapType TLSCandMap
Method Overview
- private void collectTLSCandidate(llvm::Instruction * Inst)
- private void collectTLSCandidates(llvm::Function & Fn)
- private BasicBlock::iterator findInsertPos(llvm::Function & Fn, llvm::GlobalVariable * GV, llvm::BasicBlock *& PosBB)
- private llvm::Instruction * genBitCastInst(llvm::Function & Fn, llvm::GlobalVariable * GV)
- private llvm::Instruction * getDomInst(llvm::Instruction * I1, llvm::Instruction * I2)
- private llvm::Instruction * getNearestLoopDomInst(llvm::BasicBlock * BB, llvm::Loop * L)
- public llvm::PreservedAnalyses run(llvm::Function & F, llvm::FunctionAnalysisManager & AM)
- public bool runImpl(llvm::Function & F, llvm::DominatorTree & DT, llvm::LoopInfo & LI)
- private bool tryReplaceTLSCandidate(llvm::Function & Fn, llvm::GlobalVariable * GV)
- private bool tryReplaceTLSCandidates(llvm::Function & Fn)
Methods
¶void collectTLSCandidate(llvm::Instruction* Inst)
void collectTLSCandidate(llvm::Instruction* Inst)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:119
Parameters
- llvm::Instruction* Inst
¶void collectTLSCandidates(llvm::Function& Fn)
void collectTLSCandidates(llvm::Function& Fn)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:118
Parameters
- llvm::Function& Fn
¶BasicBlock::iterator findInsertPos(
llvm::Function& Fn,
llvm::GlobalVariable* GV,
llvm::BasicBlock*& PosBB)
BasicBlock::iterator findInsertPos(
llvm::Function& Fn,
llvm::GlobalVariable* GV,
llvm::BasicBlock*& PosBB)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:122
Parameters
- llvm::Function& Fn
- llvm::GlobalVariable* GV
- llvm::BasicBlock*& PosBB
¶llvm::Instruction* genBitCastInst(
llvm::Function& Fn,
llvm::GlobalVariable* GV)
llvm::Instruction* genBitCastInst(
llvm::Function& Fn,
llvm::GlobalVariable* GV)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:124
Parameters
¶llvm::Instruction* getDomInst(
llvm::Instruction* I1,
llvm::Instruction* I2)
llvm::Instruction* getDomInst(
llvm::Instruction* I1,
llvm::Instruction* I2)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:121
Parameters
¶llvm::Instruction* getNearestLoopDomInst(
llvm::BasicBlock* BB,
llvm::Loop* L)
llvm::Instruction* getNearestLoopDomInst(
llvm::BasicBlock* BB,
llvm::Loop* L)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:120
Parameters
- llvm::BasicBlock* BB
- llvm::Loop* L
¶llvm::PreservedAnalyses run(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM)
llvm::PreservedAnalyses run(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:105
Parameters
¶bool runImpl(llvm::Function& F,
llvm::DominatorTree& DT,
llvm::LoopInfo& LI)
bool runImpl(llvm::Function& F,
llvm::DominatorTree& DT,
llvm::LoopInfo& LI)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:108
Parameters
¶bool tryReplaceTLSCandidate(
llvm::Function& Fn,
llvm::GlobalVariable* GV)
bool tryReplaceTLSCandidate(
llvm::Function& Fn,
llvm::GlobalVariable* GV)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:126
Parameters
¶bool tryReplaceTLSCandidates(llvm::Function& Fn)
bool tryReplaceTLSCandidates(llvm::Function& Fn)
Declared at: llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h:125
Parameters
- llvm::Function& Fn