diff options
-rw-r--r-- | include/llvm/CodeGen/MachineInstr.h | 24 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineInstrBuilder.h | 4 |
2 files changed, 9 insertions, 19 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h index 6227490706..1d2f4f1095 100644 --- a/include/llvm/CodeGen/MachineInstr.h +++ b/include/llvm/CodeGen/MachineInstr.h @@ -17,7 +17,6 @@ #define LLVM_CODEGEN_MACHINEINSTR_H #include "llvm/ADT/iterator" -#include <string> #include <vector> #include <cassert> @@ -121,7 +120,7 @@ private: int immedVal; // Constant value for an explicit constant MachineBasicBlock *MBB; // For MO_MachineBasicBlock type - std::string *SymbolName; // For MO_ExternalSymbol type + const char *SymbolName; // For MO_ExternalSymbol type } contents; char flags; // see bit field definitions above @@ -177,10 +176,10 @@ private: extra.regNum = -1; } - MachineOperand(const std::string &SymName, bool isPCRelative, int Offset) + MachineOperand(const char *SymName, bool isPCRelative, int Offset) : flags(isPCRelative?PCRELATIVE:0), opType(MO_ExternalSymbol) { zeroContents (); - contents.SymbolName = new std::string (SymName); + contents.SymbolName = SymName; extra.offset = Offset; } @@ -190,25 +189,16 @@ public: zeroContents (); contents = M.contents; extra = M.extra; - if (isExternalSymbol()) - contents.SymbolName = new std::string(M.getSymbolName()); } - ~MachineOperand() { - if (isExternalSymbol()) - delete contents.SymbolName; - } + ~MachineOperand() {} const MachineOperand &operator=(const MachineOperand &MO) { - if (isExternalSymbol()) // if old operand had a symbol name, - delete contents.SymbolName; // release old memory contents = MO.contents; flags = MO.flags; opType = MO.opType; extra = MO.extra; - if (isExternalSymbol()) - contents.SymbolName = new std::string(MO.getSymbolName()); return *this; } @@ -298,9 +288,9 @@ public: "Wrong MachineOperand accessor"); return extra.offset; } - const std::string &getSymbolName() const { + const char *getSymbolName() const { assert(isExternalSymbol() && "Wrong MachineOperand accessor"); - return *contents.SymbolName; + return contents.SymbolName; } /// MachineOperand methods for testing that work on any kind of @@ -658,7 +648,7 @@ public: /// addExternalSymbolOperand - Add an external symbol operand to this instr /// - void addExternalSymbolOperand(const std::string &SymName, bool isPCRelative) { + void addExternalSymbolOperand(const char *SymName, bool isPCRelative) { operands.push_back(MachineOperand(SymName, isPCRelative, 0)); } diff --git a/include/llvm/CodeGen/MachineInstrBuilder.h b/include/llvm/CodeGen/MachineInstrBuilder.h index 12ca1b4998..e6264e256b 100644 --- a/include/llvm/CodeGen/MachineInstrBuilder.h +++ b/include/llvm/CodeGen/MachineInstrBuilder.h @@ -129,9 +129,9 @@ public: return *this; } - const MachineInstrBuilder &addExternalSymbol(const std::string &Name, + const MachineInstrBuilder &addExternalSymbol(const char *FnName, bool isPCRelative = false) const{ - MI->addExternalSymbolOperand(Name, isPCRelative); + MI->addExternalSymbolOperand(FnName, isPCRelative); return *this; } }; |