diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-10-29 19:38:46 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-10-29 19:38:46 +0000 |
commit | e68a3435ee6a695f1fd4b80c3d482e396001e0f5 (patch) | |
tree | 532b87909867c26a3b4681166edc929031c0fe0c | |
parent | aabb595c4f389e1cb9e0511f66f10b24108a2ada (diff) |
Move CallArgsDescriptor into this class instead of making it an
annotation on the machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4398 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/MachineCodeForInstruction.h | 9 | ||||
-rw-r--r-- | lib/CodeGen/MachineCodeForInstruction.cpp | 5 | ||||
-rw-r--r-- | lib/Target/SparcV9/MachineCodeForInstruction.h | 9 |
3 files changed, 19 insertions, 4 deletions
diff --git a/include/llvm/CodeGen/MachineCodeForInstruction.h b/include/llvm/CodeGen/MachineCodeForInstruction.h index 2193a80e52..f4ec42dbf3 100644 --- a/include/llvm/CodeGen/MachineCodeForInstruction.h +++ b/include/llvm/CodeGen/MachineCodeForInstruction.h @@ -23,12 +23,14 @@ class MachineInstr; class Instruction; class Value; +class CallArgsDescriptor; extern AnnotationID MCFI_AID; class MachineCodeForInstruction : public Annotation { - std::vector<Value*> tempVec; // used by m/c instr but not VM instr - std::vector<MachineInstr*> Contents; + std::vector<Value*> tempVec; // used by m/c instr but not VM instr + std::vector<MachineInstr*> Contents; // the machine instr for this VM instr + CallArgsDescriptor* callArgsDesc; // only used for CALL instructions public: MachineCodeForInstruction() : Annotation(MCFI_AID) {} ~MachineCodeForInstruction(); @@ -81,6 +83,9 @@ public: tempVec.push_back(tmp); return *this; } + + void setCallArgsDescriptor(CallArgsDescriptor* desc) { callArgsDesc = desc; } + CallArgsDescriptor* getCallArgsDescriptor() const { return callArgsDesc; } }; #endif diff --git a/lib/CodeGen/MachineCodeForInstruction.cpp b/lib/CodeGen/MachineCodeForInstruction.cpp index f3080628ee..7b2fb75c65 100644 --- a/lib/CodeGen/MachineCodeForInstruction.cpp +++ b/lib/CodeGen/MachineCodeForInstruction.cpp @@ -17,6 +17,7 @@ #include "llvm/CodeGen/MachineCodeForInstruction.h" #include "llvm/CodeGen/MachineInstr.h" +#include "llvm/CodeGen/MachineInstrAnnot.h" #include "llvm/CodeGen/InstrSelection.h" AnnotationID MCFI_AID( @@ -55,4 +56,8 @@ MachineCodeForInstruction::~MachineCodeForInstruction() // Free the MachineInstr objects allocated, if any. for (unsigned i=0, N = size(); i < N; i++) delete (*this)[i]; + + // Free the CallArgsDescriptor if it exists. + if (callArgsDesc) + delete callArgsDesc; } diff --git a/lib/Target/SparcV9/MachineCodeForInstruction.h b/lib/Target/SparcV9/MachineCodeForInstruction.h index 2193a80e52..f4ec42dbf3 100644 --- a/lib/Target/SparcV9/MachineCodeForInstruction.h +++ b/lib/Target/SparcV9/MachineCodeForInstruction.h @@ -23,12 +23,14 @@ class MachineInstr; class Instruction; class Value; +class CallArgsDescriptor; extern AnnotationID MCFI_AID; class MachineCodeForInstruction : public Annotation { - std::vector<Value*> tempVec; // used by m/c instr but not VM instr - std::vector<MachineInstr*> Contents; + std::vector<Value*> tempVec; // used by m/c instr but not VM instr + std::vector<MachineInstr*> Contents; // the machine instr for this VM instr + CallArgsDescriptor* callArgsDesc; // only used for CALL instructions public: MachineCodeForInstruction() : Annotation(MCFI_AID) {} ~MachineCodeForInstruction(); @@ -81,6 +83,9 @@ public: tempVec.push_back(tmp); return *this; } + + void setCallArgsDescriptor(CallArgsDescriptor* desc) { callArgsDesc = desc; } + CallArgsDescriptor* getCallArgsDescriptor() const { return callArgsDesc; } }; #endif |