#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/raw_ostream.h"
using namespace llvm;
MipsCallEntry::MipsCallEntry(const StringRef &N) {
#ifndef NDEBUG
Name = N;
- Val = 0;
+ Val = nullptr;
#endif
}
++I)
delete I->getValue();
- for (ValueMap<const GlobalValue *, const MipsCallEntry *>::iterator
- I = GlobalCallEntries.begin(), E = GlobalCallEntries.end(); I != E; ++I)
- delete I->second;
+ for (const auto &Entry : GlobalCallEntries)
+ delete Entry.second;
}
bool MipsFunctionInfo::globalBaseRegSet() const {
}
MachinePointerInfo MipsFunctionInfo::callPtrInfo(const StringRef &Name) {
- StringMap<const MipsCallEntry *>::const_iterator I;
- I = ExternalCallEntries.find(Name);
+ const MipsCallEntry *&E = ExternalCallEntries[Name];
- if (I != ExternalCallEntries.end())
- return MachinePointerInfo(I->getValue());
+ if (!E)
+ E = new MipsCallEntry(Name);
- const MipsCallEntry *E = ExternalCallEntries[Name] = new MipsCallEntry(Name);
return MachinePointerInfo(E);
}
MachinePointerInfo MipsFunctionInfo::callPtrInfo(const GlobalValue *Val) {
- ValueMap<const GlobalValue *, const MipsCallEntry *>::const_iterator I;
- I = GlobalCallEntries.find(Val);
+ const MipsCallEntry *&E = GlobalCallEntries[Val];
- if (I != GlobalCallEntries.end())
- return MachinePointerInfo(I->second);
+ if (!E)
+ E = new MipsCallEntry(Val);
- const MipsCallEntry *E = GlobalCallEntries[Val] = new MipsCallEntry(Val);
return MachinePointerInfo(E);
}
+int MipsFunctionInfo::getMoveF64ViaSpillFI(const TargetRegisterClass *RC) {
+ if (MoveF64ViaSpillFI == -1) {
+ MoveF64ViaSpillFI = MF.getFrameInfo()->CreateStackObject(
+ RC->getSize(), RC->getAlignment(), false);
+ }
+ return MoveF64ViaSpillFI;
+}
+
void MipsFunctionInfo::anchor() { }