|
@@ -15,12 +15,10 @@
|
|
|
#define LLVM_LIB_TARGET_MIPS_MIPSMACHINEFUNCTION_H
|
|
|
|
|
|
#include "Mips16HardFloatInfo.h"
|
|
|
-#include "llvm/ADT/StringMap.h"
|
|
|
#include "llvm/CodeGen/MachineFrameInfo.h"
|
|
|
#include "llvm/CodeGen/MachineFunction.h"
|
|
|
#include "llvm/CodeGen/MachineMemOperand.h"
|
|
|
#include "llvm/CodeGen/PseudoSourceValue.h"
|
|
|
-#include "llvm/IR/GlobalValue.h"
|
|
|
#include "llvm/IR/ValueMap.h"
|
|
|
#include "llvm/Target/TargetFrameLowering.h"
|
|
|
#include "llvm/Target/TargetMachine.h"
|
|
@@ -30,24 +28,6 @@
|
|
|
|
|
|
namespace llvm {
|
|
|
|
|
|
-/// \brief A class derived from PseudoSourceValue that represents a GOT entry
|
|
|
-/// resolved by lazy-binding.
|
|
|
-class MipsCallEntry : public PseudoSourceValue {
|
|
|
-public:
|
|
|
- explicit MipsCallEntry(StringRef N);
|
|
|
- explicit MipsCallEntry(const GlobalValue *V);
|
|
|
- bool isConstant(const MachineFrameInfo *) const override;
|
|
|
- bool isAliased(const MachineFrameInfo *) const override;
|
|
|
- bool mayAlias(const MachineFrameInfo *) const override;
|
|
|
-
|
|
|
-private:
|
|
|
- void printCustom(raw_ostream &O) const override;
|
|
|
-#ifndef NDEBUG
|
|
|
- std::string Name;
|
|
|
- const GlobalValue *Val;
|
|
|
-#endif
|
|
|
-};
|
|
|
-
|
|
|
/// MipsFunctionInfo - This class is derived from MachineFunction private
|
|
|
/// Mips target-specific information for each MachineFunction.
|
|
|
class MipsFunctionInfo : public MachineFunctionInfo {
|
|
@@ -86,13 +66,13 @@ public:
|
|
|
int getEhDataRegFI(unsigned Reg) const { return EhDataRegFI[Reg]; }
|
|
|
bool isEhDataRegFI(int FI) const;
|
|
|
|
|
|
- /// \brief Create a MachinePointerInfo that has a MipsCallEntr object
|
|
|
- /// representing a GOT entry for an external function.
|
|
|
- MachinePointerInfo callPtrInfo(StringRef Name);
|
|
|
+ /// Create a MachinePointerInfo that has an ExternalSymbolPseudoSourceValue
|
|
|
+ /// object representing a GOT entry for an external function.
|
|
|
+ MachinePointerInfo callPtrInfo(const char *ES);
|
|
|
|
|
|
- /// \brief Create a MachinePointerInfo that has a MipsCallEntr object
|
|
|
+ /// Create a MachinePointerInfo that has a GlobalValuePseudoSourceValue object
|
|
|
/// representing a GOT entry for a global function.
|
|
|
- MachinePointerInfo callPtrInfo(const GlobalValue *Val);
|
|
|
+ MachinePointerInfo callPtrInfo(const GlobalValue *GV);
|
|
|
|
|
|
void setSaveS2() { SaveS2 = true; }
|
|
|
bool hasSaveS2() const { return SaveS2; }
|
|
@@ -142,11 +122,6 @@ private:
|
|
|
/// FrameIndex for expanding BuildPairF64 nodes to spill and reload when the
|
|
|
/// O32 FPXX ABI is enabled. -1 is used to denote invalid index.
|
|
|
int MoveF64ViaSpillFI;
|
|
|
-
|
|
|
- /// MipsCallEntry maps.
|
|
|
- StringMap<std::unique_ptr<const MipsCallEntry>> ExternalCallEntries;
|
|
|
- ValueMap<const GlobalValue *, std::unique_ptr<const MipsCallEntry>>
|
|
|
- GlobalCallEntries;
|
|
|
};
|
|
|
|
|
|
} // end of namespace llvm
|