24 cl::desc(
"Always use $gp as the global base register."));
52 void MipsCallEntry::printCustom(
raw_ostream &O)
const {
53 O <<
"MipsCallEntry: ";
64 I = ExternalCallEntries.begin(), E = ExternalCallEntries.end();
I != E;
69 I = GlobalCallEntries.begin(), E = GlobalCallEntries.end();
I != E; ++
I)
95 return Mips16SPAliasReg;
100 return Mips16SPAliasReg;
108 for (
int I = 0;
I < 4; ++
I) {
111 &Mips::GPR64RegClass : &Mips::GPR32RegClass;
114 RC->getAlignment(),
false);
119 return CallsEhReturn && (FI == EhDataRegFI[0] || FI == EhDataRegFI[1]
120 || FI == EhDataRegFI[2] || FI == EhDataRegFI[3]);
141 void MipsFunctionInfo::anchor() { }
virtual bool mayAlias(const MachineFrameInfo *) const
unsigned createVirtualRegister(const TargetRegisterClass *RegClass)
StringRef getName() const
bool mips16SPAliasRegSet() const
void createEhDataRegsFI()
virtual bool isConstant(const MachineFrameInfo *) const
Abstract Stack Frame Information.
initializer< Ty > init(const Ty &Val)
A class derived from PseudoSourceValue that represents a GOT entry resolved by lazy-binding.
virtual bool isAliased(const MachineFrameInfo *) const
bool inMips16Mode() const
bool isEhDataRegFI(int FI) const
const STC & getSubtarget() const
unsigned getGlobalBaseReg()
MachineFrameInfo * getFrameInfo()
MipsCallEntry(const StringRef &N)
int CreateStackObject(uint64_t Size, unsigned Alignment, bool isSS, bool MayNeedSP=false, const AllocaInst *Alloca=0)
MachineRegisterInfo & getRegInfo()
unsigned getMips16SPAliasReg()
const TargetMachine & getTarget() const
bool globalBaseRegSet() const
MachinePointerInfo callPtrInfo(const StringRef &Name)
Create a MachinePointerInfo that has a MipsCallEntr object representing a GOT entry for an external f...
static cl::opt< bool > FixGlobalBaseReg("mips-fix-global-base-reg", cl::Hidden, cl::init(true), cl::desc("Always use $gp as the global base register."))