aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineFunctionInfo.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-08-16 21:56:15 +0000
committerChris Lattner <sabre@nondot.org>2004-08-16 21:56:15 +0000
commit5a6074053d458159953f83dad078cbe315318314 (patch)
tree535e53918df69e2d3fdcc443825a710bc9d2e853 /include/llvm/CodeGen/MachineFunctionInfo.h
parent85015a0891d4d23d0215511c7b302747e1438ad2 (diff)
These files now live in lib/Target/SparcV9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15831 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineFunctionInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineFunctionInfo.h124
1 files changed, 0 insertions, 124 deletions
diff --git a/include/llvm/CodeGen/MachineFunctionInfo.h b/include/llvm/CodeGen/MachineFunctionInfo.h
deleted file mode 100644
index 8afdc719e2..0000000000
--- a/include/llvm/CodeGen/MachineFunctionInfo.h
+++ /dev/null
@@ -1,124 +0,0 @@
-//===-- llvm/CodeGen/MachineFunctionInfo.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 class keeps track of information about the stack frame and about the
-// per-function constant pool.
-//
-// FIXME: This class is completely SparcV9 specific. Do not use it for future
-// targets. This file will be eliminated in future versions of LLVM.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CODEGEN_MACHINEFUNCTIONINFO_H
-#define LLVM_CODEGEN_MACHINEFUNCTIONINFO_H
-
-#include "llvm/CodeGen/MachineCodeForInstruction.h"
-#include "Support/HashExtras.h"
-#include "Support/hash_set"
-
-namespace llvm {
-
-class MachineFunction;
-class Constant;
-class Type;
-
-class MachineFunctionInfo {
- hash_set<const Constant*> constantsForConstPool;
- hash_map<const Value*, int> offsets;
-
- unsigned staticStackSize;
- unsigned automaticVarsSize;
- unsigned regSpillsSize;
- unsigned maxOptionalArgsSize;
- unsigned maxOptionalNumArgs;
- unsigned currentTmpValuesSize;
- unsigned maxTmpValuesSize;
- bool compiledAsLeaf;
- bool spillsAreaFrozen;
- bool automaticVarsAreaFrozen;
-
- MachineFunction &MF;
-public:
- hash_map<const Instruction*, MachineCodeForInstruction> MCFIEntries;
-
- MachineFunctionInfo(MachineFunction &mf) : MF(mf) {
- staticStackSize = automaticVarsSize = regSpillsSize = 0;
- maxOptionalArgsSize = maxOptionalNumArgs = currentTmpValuesSize = 0;
- maxTmpValuesSize = 0;
- compiledAsLeaf = spillsAreaFrozen = automaticVarsAreaFrozen = false;
- }
-
- /// CalculateArgSize - Call this method to fill in the maxOptionalArgsSize &
- /// staticStackSize fields...
- ///
- void CalculateArgSize();
-
- //
- // Accessors for global information about generated code for a method.
- //
- bool isCompiledAsLeafMethod() const { return compiledAsLeaf; }
- unsigned getStaticStackSize() const { return staticStackSize; }
- unsigned getAutomaticVarsSize() const { return automaticVarsSize; }
- unsigned getRegSpillsSize() const { return regSpillsSize; }
- unsigned getMaxOptionalArgsSize() const { return maxOptionalArgsSize;}
- unsigned getMaxOptionalNumArgs() const { return maxOptionalNumArgs;}
- const hash_set<const Constant*> &getConstantPoolValues() const {
- return constantsForConstPool;
- }
-
- //
- // Modifiers used during code generation
- //
- void initializeFrameLayout ();
-
- void addToConstantPool (const Constant* constVal) {
- constantsForConstPool.insert(constVal);
- }
-
- void markAsLeafMethod() { compiledAsLeaf = true; }
-
- int computeOffsetforLocalVar (const Value* local,
- unsigned& getPaddedSize,
- unsigned sizeToUse = 0);
- int allocateLocalVar (const Value* local,
- unsigned sizeToUse = 0);
-
- int allocateSpilledValue (const Type* type);
- int pushTempValue (unsigned size);
- void popAllTempValues ();
-
- void freezeSpillsArea () { spillsAreaFrozen = true; }
- void freezeAutomaticVarsArea () { automaticVarsAreaFrozen=true; }
-
-private:
- void incrementAutomaticVarsSize(int incr) {
- automaticVarsSize+= incr;
- staticStackSize += incr;
- }
- void incrementRegSpillsSize(int incr) {
- regSpillsSize+= incr;
- staticStackSize += incr;
- }
- void incrementTmpAreaSize(int incr) {
- currentTmpValuesSize += incr;
- if (maxTmpValuesSize < currentTmpValuesSize)
- {
- staticStackSize += currentTmpValuesSize - maxTmpValuesSize;
- maxTmpValuesSize = currentTmpValuesSize;
- }
- }
- void resetTmpAreaSize() {
- currentTmpValuesSize = 0;
- }
- int allocateOptionalArg(const Type* type);
-};
-
-} // End llvm namespace
-
-#endif