From 777a1cde665f22b75a23a46e51de4ecb6d169c22 Mon Sep 17 00:00:00 2001 From: Brian Gaeke Date: Tue, 8 Jun 2004 18:52:46 +0000 Subject: [PATCH] Add a TmpInstruction ctor that doesn't take a MCFI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14073 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/InstrSelection.h | 7 ++++++- .../SparcV9/InstrSelection/InstrSelection.cpp | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/include/llvm/CodeGen/InstrSelection.h b/include/llvm/CodeGen/InstrSelection.h index 5fa1ab1782c..7b3ddd09195 100644 --- a/include/llvm/CodeGen/InstrSelection.h +++ b/include/llvm/CodeGen/InstrSelection.h @@ -75,7 +75,12 @@ public: // s1 must be a valid value. s2 may be NULL. TmpInstruction(MachineCodeForInstruction& mcfi, Value *s1, Value *s2 = 0, const std::string &name = ""); - + + // Constructor that uses the type of S1 as the type of the temporary, + // but does not require a MachineCodeForInstruction. + // s1 must be a valid value. s2 may be NULL. + TmpInstruction(Value *s1, Value *s2 = 0, const std::string &name = ""); + // Constructor that requires the type of the temporary to be specified. // Both S1 and S2 may be NULL. TmpInstruction(MachineCodeForInstruction& mcfi, diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp index d30881f5932..6cce02f8dd6 100644 --- a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp +++ b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp @@ -84,6 +84,17 @@ namespace { }; } +TmpInstruction::TmpInstruction(Value *s1, Value *s2, const std::string &name) + : Instruction(s1->getType(), Instruction::UserOp1, name) +{ + Operands.push_back(Use(s1, this)); // s1 must be non-null + if (s2) + Operands.push_back(Use(s2, this)); + + // TmpInstructions should not be garbage checked. + LeakDetector::removeGarbageObject(this); +} + TmpInstruction::TmpInstruction(MachineCodeForInstruction& mcfi, Value *s1, Value *s2, const std::string &name) : Instruction(s1->getType(), Instruction::UserOp1, name) @@ -97,9 +108,9 @@ TmpInstruction::TmpInstruction(MachineCodeForInstruction& mcfi, // TmpInstructions should not be garbage checked. LeakDetector::removeGarbageObject(this); } - + // Constructor that requires the type of the temporary to be specified. -// Both S1 and S2 may be NULL.( +// Both S1 and S2 may be NULL. TmpInstruction::TmpInstruction(MachineCodeForInstruction& mcfi, const Type *Ty, Value *s1, Value* s2, const std::string &name)