X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FTarget%2FTargetFrameInfo.h;h=3e26b9dd01bea6112c778d529388b30fdd4a1263;hb=ac57e6e498abccb117e0d61c2fa0f733845e50cb;hp=bbaeafdcdfcbe8ccb3486e34950bfc10ade3848a;hpb=1fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721;p=oota-llvm.git diff --git a/include/llvm/Target/TargetFrameInfo.h b/include/llvm/Target/TargetFrameInfo.h index bbaeafdcdfc..3e26b9dd01b 100644 --- a/include/llvm/Target/TargetFrameInfo.h +++ b/include/llvm/Target/TargetFrameInfo.h @@ -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. @@ -41,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. @@ -59,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 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 * - 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