Add the Object Code Emitter class. Original patch by Aaron Gray, I did some
[oota-llvm.git] / include / llvm / Target / TargetFrameInfo.h
index dfdca8dab7710af0dea900fbe13cfc88ce4857cb..3e26b9dd01bea6112c778d529388b30fdd4a1263 100644 (file)
@@ -1,10 +1,10 @@
 //===-- llvm/Target/TargetFrameInfo.h ---------------------------*- C++ -*-===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
 //===----------------------------------------------------------------------===//
 //
 // Interface to describe the layout of a stack frame on the target machine.
@@ -18,8 +18,6 @@
 
 namespace llvm {
 
-class MachineFunction;
-
 /// 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
 /// the offset to the locals area.
@@ -27,7 +25,8 @@ class MachineFunction;
 /// The offset to the local area is the offset from the stack pointer on
 /// function entry to the first location where function data (local variables,
 /// spill locations) can be stored.
-struct TargetFrameInfo {
+class TargetFrameInfo {
+public:
   enum StackDirection {
     StackGrowsUp,        // Adding to the stack increases the stack address
     StackGrowsDown       // Adding to the stack decreases the stack address
@@ -40,6 +39,8 @@ public:
   TargetFrameInfo(StackDirection D, unsigned StackAl, int LAO)
     : StackDir(D), StackAlignment(StackAl), LocalAreaOffset(LAO) {}
 
+  virtual ~TargetFrameInfo();
+
   // These methods return information that describes the abstract stack layout
   // of the target machine.
 
@@ -58,48 +59,20 @@ public:
   ///
   int getOffsetOfLocalArea() const { return LocalAreaOffset; }
 
-  /// getCalleeSaveSpillSlots - This method returns a pointer to an array of
-  /// pairs, that contains an entry for each callee save register that must be
+  /// getCalleeSavedSpillSlots - This method returns a pointer to an array of
+  /// pairs, that contains an entry for each callee saved register that must be
   /// spilled to a particular stack location if it is spilled.
   ///
   /// Each entry in this array contains a <register,offset> pair, indicating the
   /// fixed offset from the incoming stack pointer that each register should be
   /// spilled at.  If a register is not listed here, the code generator is
   /// allowed to spill it anywhere it chooses.
-  /// 
+  ///
   virtual const std::pair<unsigned, int> *
-  getCalleeSaveSpillSlots(unsigned &NumEntries) const {
+  getCalleeSavedSpillSlots(unsigned &NumEntries) const {
     NumEntries = 0;
     return 0;
   }
-  
-  //===--------------------------------------------------------------------===//
-  // These methods provide details of the stack frame used by Sparc, thus they
-  // are Sparc specific.
-  //===--------------------------------------------------------------------===//
-
-  // This method adjusts a stack offset to meet alignment rules of target.
-  virtual int adjustAlignment(int unalignedOffset, bool growUp,
-                             unsigned align) const;
-
-  // These methods compute offsets using the frame contents for a particular
-  // function.  The frame contents are obtained from the MachineFunction object
-  // for the given function.  The rest must be implemented by the
-  // machine-specific subclass.
-  // 
-  virtual int getIncomingArgOffset              (MachineFunction& mcInfo,
-                                                unsigned argNum) const;
-  virtual int getOutgoingArgOffset              (MachineFunction& mcInfo,
-                                                unsigned argNum) const;
-  
-  virtual int getFirstAutomaticVarOffset        (MachineFunction& mcInfo,
-                                                 bool& growUp) const;
-  virtual int getRegSpillAreaOffset             (MachineFunction& mcInfo,
-                                                 bool& growUp) const;
-  virtual int getTmpAreaOffset                  (MachineFunction& mcInfo,
-                                                 bool& growUp) const;
-  virtual int getDynamicAreaOffset              (MachineFunction& mcInfo,
-                                                 bool& growUp) const;
 };
 
 } // End llvm namespace