64 switch (
I->getOpcode()) {
67 if (!
I->getOperand(0).isSymbol() ||
68 strcmp(
I->getOperand(0).getSymbolName(),
"_TLS_MODULE_BASE_"))
72 I = replaceTLSBaseAddrCall(
I, TLSBaseAddrReg);
74 I = setRegister(
I, &TLSBaseAddrReg);
84 Changed |= VisitNode(
N, TLSBaseAddrReg);
93 unsigned TLSBaseAddrReg) {
101 AArch64::X0).addReg(TLSBaseAddrReg);
123 *TLSBaseAddrReg).addReg(AArch64::X0);
128 const char *getPassName()
const override {
129 return "Local Dynamic TLS Access Clean-up";
142 return new LDTLSCleanup();
const MachineFunction * getParent() const
getParent - Return the MachineFunction containing this basic block.
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-spe...
unsigned createVirtualRegister(const TargetRegisterClass *RegClass)
createVirtualRegister - Create and return a new virtual register in the function with the specified r...
MachineDomTreeNode * getRootNode() const
COPY - Target-independent register copy.
AnalysisUsage & addRequired()
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
const HexagonInstrInfo * TII
NodeTy * getNextNode()
Get the next node, or 0 for the list tail.
void eraseFromParent()
Unlink 'this' from the containing basic block and delete it.
Base class for the actual dominator tree node.
const MachineBasicBlock * getParent() const
TargetInstrInfo - Interface to description of machine instruction set.
bundle_iterator< MachineInstr, instr_iterator > iterator
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
Represent the analysis usage information of a pass.
Ty * getInfo()
getInfo - Keep track of various per-function pieces of information for backends that would like to do...
FunctionPass class - This class is used to implement most global optimizations.
MachineInstrBuilder BuildMI(MachineFunction &MF, DebugLoc DL, const MCInstrDesc &MCID)
BuildMI - Builder interface.
const MCInstrDesc & get(unsigned Opcode) const
Return the machine instruction descriptor that corresponds to the specified instruction opcode...
unsigned getNumLocalDynamicTLSAccesses() const
void setPreservesCFG()
This function should be called by the pass, iff they do not:
const DebugLoc & getDebugLoc() const
Returns the debug location id of this MachineInstr.
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
Representation of each machine instruction.
MachineRegisterInfo & getRegInfo()
getRegInfo - Return information about the registers currently in use.
virtual const TargetInstrInfo * getInstrInfo() const
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
FunctionPass * createAArch64CleanupLocalDynamicTLSPass()