blob: ce7eebee7dd56e9757f8ee31e53f283c63e619a8 [file] [log] [blame]
Evan Chenge8bd0a32006-06-06 23:30:24 +00001//====- X86MachineFuctionInfo.h - X86 machine function info -----*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file was developed by the Evan Cheng and is distributed under
6// the University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file declares X86-specific per-machine-function information.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef X86MACHINEFUNCTIONINFO_H
15#define X86MACHINEFUNCTIONINFO_H
16
17#include "llvm/CodeGen/MachineFunction.h"
18
19namespace llvm {
20
Evan Chenge5e228d2006-06-09 06:25:10 +000021/// X86FunctionInfo - This class is derived from MachineFunction private
22/// X86 target-specific information for each MachineFunction.
Evan Chenge8bd0a32006-06-06 23:30:24 +000023class X86FunctionInfo : public MachineFunctionInfo {
Evan Chenge5e228d2006-06-09 06:25:10 +000024 // ForceFramePointer - True if the function is required to use of frame
25 // pointer for reasons other than it containing dynamic allocation or
26 // that FP eliminatation is turned off. For example, Cygwin main function
27 // contains stack pointer re-alignment code which requires FP.
28 bool ForceFramePointer;
Evan Chenge8bd0a32006-06-06 23:30:24 +000029public:
30 X86FunctionInfo(MachineFunction& MF) : ForceFramePointer(false) {}
31 bool getForceFramePointer() const { return ForceFramePointer;}
32 void setForceFramePointer(bool forceFP) { ForceFramePointer = forceFP; }
33};
34} // End llvm namespace
35
36#endif