LLVM 19.0.0git
Macros | Functions | Variables
TLSVariableHoist.cpp File Reference
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Value.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Scalar/TLSVariableHoist.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <iterator>
#include <utility>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "tlshoist"
 

Functions

 INITIALIZE_PASS_BEGIN (TLSVariableHoistLegacyPass, "tlshoist", "TLS Variable Hoist", false, false) INITIALIZE_PASS_END(TLSVariableHoistLegacyPass
 
static bool oneUseOutsideLoop (tlshoist::TLSCandidate &Cand, LoopInfo *LI)
 

Variables

static cl::opt< boolTLSLoadHoist ("tls-load-hoist", cl::init(false), cl::Hidden, cl::desc("hoist the TLS loads in PIC model to eliminate redundant " "TLS address calculation."))
 
 tlshoist
 
TLS Variable Hoist
 When an instruction is found to use only loop invariant operands that are safe to hoist, this instruction is called to do the dirty work.
 
TLS Variable false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "tlshoist"

Definition at line 40 of file TLSVariableHoist.cpp.

Function Documentation

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( TLSVariableHoistLegacyPass  ,
"tlshoist"  ,
"TLS Variable Hoist"  ,
false  ,
false   
)

◆ oneUseOutsideLoop()

static bool oneUseOutsideLoop ( tlshoist::TLSCandidate Cand,
LoopInfo LI 
)
static

Variable Documentation

◆ false

TLS Variable false

Definition at line 81 of file TLSVariableHoist.cpp.

◆ Hoist

unsigned MachineLICMBase::Hoist

When an instruction is found to use only loop invariant operands that are safe to hoist, this instruction is called to do the dirty work.

It returns true if the instruction is hoisted.

Definition at line 81 of file TLSVariableHoist.cpp.

◆ tlshoist

tlshoist

Definition at line 80 of file TLSVariableHoist.cpp.

◆ TLSLoadHoist

cl::opt< bool > TLSLoadHoist("tls-load-hoist", cl::init(false), cl::Hidden, cl::desc("hoist the TLS loads in PIC model to eliminate redundant " "TLS address calculation.")) ( "tls-load-hoist"  ,
cl::init(false)  ,
cl::Hidden  ,
cl::desc("hoist the TLS loads in PIC model to eliminate redundant " "TLS address calculation.")   
)
static