aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2010-11-15 00:06:54 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2010-11-15 00:06:54 +0000
commit33464912237efaa0ed7060829e66b59055bdd48b (patch)
tree3b5a58918b40d4368be141a6350de4e4c8607032 /include
parent78b4fee8fd040d802e027da7bef3f707b12d8df5 (diff)
downloadexternal_llvm-33464912237efaa0ed7060829e66b59055bdd48b.zip
external_llvm-33464912237efaa0ed7060829e66b59055bdd48b.tar.gz
external_llvm-33464912237efaa0ed7060829e66b59055bdd48b.tar.bz2
First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119097 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetFrameInfo.h15
-rw-r--r--include/llvm/Target/TargetRegisterInfo.h13
2 files changed, 15 insertions, 13 deletions
diff --git a/include/llvm/Target/TargetFrameInfo.h b/include/llvm/Target/TargetFrameInfo.h
index 975d156..6143f3c5 100644
--- a/include/llvm/Target/TargetFrameInfo.h
+++ b/include/llvm/Target/TargetFrameInfo.h
@@ -17,6 +17,8 @@
#include <utility>
namespace llvm {
+ class MachineFunction;
+ class MachineBasicBlock;
/// Information about stack frame layout on the target. It holds the direction
/// of stack growth, the known stack alignment on entry to each function, and
@@ -90,6 +92,19 @@ public:
NumEntries = 0;
return 0;
}
+
+ /// targetHandlesStackFrameRounding - Returns true if the target is
+ /// responsible for rounding up the stack frame (probably at emitPrologue
+ /// time).
+ virtual bool targetHandlesStackFrameRounding() const {
+ return false;
+ }
+
+ /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
+ /// the function.
+ virtual void emitPrologue(MachineFunction &MF) const = 0;
+ virtual void emitEpilogue(MachineFunction &MF,
+ MachineBasicBlock &MBB) const = 0;
};
} // End llvm namespace
diff --git a/include/llvm/Target/TargetRegisterInfo.h b/include/llvm/Target/TargetRegisterInfo.h
index 06674c8..9be3623 100644
--- a/include/llvm/Target/TargetRegisterInfo.h
+++ b/include/llvm/Target/TargetRegisterInfo.h
@@ -577,13 +577,6 @@ public:
// Do nothing.
}
- /// targetHandlesStackFrameRounding - Returns true if the target is
- /// responsible for rounding up the stack frame (probably at emitPrologue
- /// time).
- virtual bool targetHandlesStackFrameRounding() const {
- return false;
- }
-
/// requiresRegisterScavenging - returns true if the target requires (and can
/// make use of) the register scavenger.
virtual bool requiresRegisterScavenging(const MachineFunction &MF) const {
@@ -749,12 +742,6 @@ public:
virtual void eliminateFrameIndex(MachineBasicBlock::iterator MI,
int SPAdj, RegScavenger *RS=NULL) const = 0;
- /// emitProlog/emitEpilog - These methods insert prolog and epilog code into
- /// the function.
- virtual void emitPrologue(MachineFunction &MF) const = 0;
- virtual void emitEpilogue(MachineFunction &MF,
- MachineBasicBlock &MBB) const = 0;
-
//===--------------------------------------------------------------------===//
/// Debug information queries.