[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineFunction.h
Chris Lattner
lattner at cs.uiuc.edu
Tue Dec 24 23:01:00 PST 2002
Changes in directory llvm/include/llvm/CodeGen:
MachineFunction.h updated: 1.21 -> 1.22
---
Log message:
Remove dependency on SSARegMap.h
---
Diffs of the changes:
Index: llvm/include/llvm/CodeGen/MachineFunction.h
diff -u llvm/include/llvm/CodeGen/MachineFunction.h:1.21 llvm/include/llvm/CodeGen/MachineFunction.h:1.22
--- llvm/include/llvm/CodeGen/MachineFunction.h:1.21 Fri Nov 22 16:32:15 2002
+++ llvm/include/llvm/CodeGen/MachineFunction.h Tue Dec 24 23:00:16 2002
@@ -10,7 +10,6 @@
#define LLVM_CODEGEN_MACHINEFUNCTION_H
#include "llvm/CodeGen/MachineBasicBlock.h"
-#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Annotation.h"
#include "Support/HashExtras.h"
#include "Support/hash_set"
@@ -22,6 +21,7 @@
class Type;
class TargetMachine;
class Pass;
+class SSARegMap;
Pass *createMachineCodeConstructionPass(TargetMachine &Target);
Pass *createMachineCodeDestructionPass();
@@ -34,6 +34,9 @@
// List of machine basic blocks in function
iplist<MachineBasicBlock> BasicBlocks;
+ // Keeping track of mapping from SSA values to registers
+ SSARegMap *SSARegMapping;
+
// FIXME: State should be held elsewhere...
hash_set<const Constant*> constantsForConstPool;
hash_map<const Value*, int> offsets;
@@ -48,11 +51,9 @@
bool spillsAreaFrozen;
bool automaticVarsAreaFrozen;
- // Keeping track of mapping from SSA values to registers
- SSARegMap *SSARegMapping;
-
public:
MachineFunction(const Function *Fn, const TargetMachine& target);
+ ~MachineFunction();
/// getFunction - Return the LLVM function that this machine code represents
///
@@ -71,11 +72,6 @@
///
void dump() const;
- /// CalculateArgSize - Call this method to fill in the maxOptionalArgsSize &
- /// staticStackSize fields...
- ///
- void CalculateArgSize();
-
// The next three methods are used to construct, destruct, and retrieve the
// MachineFunction object for the given method.
//
@@ -90,18 +86,6 @@
static void destruct(const Function *F);
static MachineFunction& get(const Function *F);
- // Getting and storing SSARegMap information
- const TargetRegisterClass* getRegClass(unsigned Reg) {
- return SSARegMapping->getRegClass(Reg);
- }
- void addRegMap(unsigned Reg, const TargetRegisterClass *RegClass) {
- SSARegMapping->addRegMap(Reg, RegClass);
- }
- void clearSSARegMap() {
- delete SSARegMapping;
- SSARegMapping = NULL;
- }
-
// Provide accessors for the MachineBasicBlock list...
typedef iplist<MachineBasicBlock> BasicBlockListType;
typedef BasicBlockListType::iterator iterator;
@@ -134,11 +118,24 @@
MachineBasicBlock & back() { return BasicBlocks.back(); }
//===--------------------------------------------------------------------===//
+ // SSARegMap Interface... Keep track of information about each SSA virtual
+ // register, such as which register class it belongs to.
//
- // FIXME: Most of the following state should be moved out to passes that use
- // it, instead of being put here.
+
+ SSARegMap *getSSARegMap() const { return SSARegMapping; }
+ void clearSSARegMap();
+
+
+ //===--------------------------------------------------------------------===//
+ //
+ // FIXME: Most of the following state should be moved into another class!
//
+ /// CalculateArgSize - Call this method to fill in the maxOptionalArgsSize &
+ /// staticStackSize fields...
+ ///
+ void CalculateArgSize();
+
//
// Accessors for global information about generated code for a method.
//
@@ -181,8 +178,6 @@
void freezeAutomaticVarsArea () { automaticVarsAreaFrozen=true; }
int getOffset (const Value* val) const;
-
- // int getOffsetFromFP (const Value* val) const;
private:
inline void incrementAutomaticVarsSize(int incr) {
More information about the llvm-commits
mailing list