diff options
author | Chris Lattner <sabre@nondot.org> | 2002-12-25 05:00:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-12-25 05:00:16 +0000 |
commit | 03ab7af4dec01a3003e469c458e37bbf4ce4f2f3 (patch) | |
tree | cba9bd23867c77cb68a9275dd6964f5fdb453652 /include/llvm/CodeGen/MachineFunction.h | |
parent | e1b52b765675015eee5ce9efdb1b81c6c3eaefb1 (diff) |
Remove dependency on SSARegMap.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5137 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineFunction.h')
-rw-r--r-- | include/llvm/CodeGen/MachineFunction.h | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/include/llvm/CodeGen/MachineFunction.h b/include/llvm/CodeGen/MachineFunction.h index 0e0aa51036..2739d49107 100644 --- a/include/llvm/CodeGen/MachineFunction.h +++ b/include/llvm/CodeGen/MachineFunction.h @@ -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 Constant; class Type; class TargetMachine; class Pass; +class SSARegMap; Pass *createMachineCodeConstructionPass(TargetMachine &Target); Pass *createMachineCodeDestructionPass(); @@ -34,6 +34,9 @@ class MachineFunction : private Annotation { // 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 @@ class MachineFunction : private Annotation { 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 @@ public: /// 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 @@ public: 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 @@ public: MachineBasicBlock & back() { return BasicBlocks.back(); } //===--------------------------------------------------------------------===// + // SSARegMap Interface... Keep track of information about each SSA virtual + // register, such as which register class it belongs to. + // + + SSARegMap *getSSARegMap() const { return SSARegMapping; } + void clearSSARegMap(); + + + //===--------------------------------------------------------------------===// // - // FIXME: Most of the following state should be moved out to passes that use - // it, instead of being put here. + // 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. // @@ -182,8 +179,6 @@ public: int getOffset (const Value* val) const; - // int getOffsetFromFP (const Value* val) const; - private: inline void incrementAutomaticVarsSize(int incr) { automaticVarsSize+= incr; |