LLVM API Documentation

X86MachineFunctionInfo.h

Go to the documentation of this file.
00001 //====- X86MachineFuctionInfo.h - X86 machine function info -----*- C++ -*-===//
00002 // 
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file was developed by the Evan Cheng and is distributed under
00006 // the University of Illinois Open Source License. See LICENSE.TXT for details.
00007 // 
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file declares X86-specific per-machine-function information.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef X86MACHINEFUNCTIONINFO_H
00015 #define X86MACHINEFUNCTIONINFO_H
00016 
00017 #include "llvm/CodeGen/MachineFunction.h"
00018 
00019 namespace llvm {
00020 
00021 /// X86FunctionInfo - This class is derived from MachineFunction private
00022 /// X86 target-specific information for each MachineFunction.
00023 class X86FunctionInfo : public MachineFunctionInfo {
00024   // ForceFramePointer - True if the function is required to use of frame
00025   // pointer for reasons other than it containing dynamic allocation or 
00026   // that FP eliminatation is turned off. For example, Cygwin main function
00027   // contains stack pointer re-alignment code which requires FP.
00028   bool ForceFramePointer;
00029 public:
00030   X86FunctionInfo(MachineFunction& MF) : ForceFramePointer(false) {}
00031   bool getForceFramePointer() const { return ForceFramePointer;} 
00032   void setForceFramePointer(bool forceFP) { ForceFramePointer = forceFP; }
00033 };
00034 } // End llvm namespace
00035 
00036 #endif