|  | //===- SparcV9TmpInstr.cpp - SparcV9 Intermediate Value class -------------===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file was developed by the LLVM research group and is distributed under | 
|  | // the University of Illinois Open Source License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  | // | 
|  | // Methods of class for temporary intermediate values used within the current | 
|  | // SparcV9 backend. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "SparcV9TmpInstr.h" | 
|  | #include "llvm/Support/LeakDetector.h" | 
|  |  | 
|  | namespace llvm { | 
|  |  | 
|  | 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) { | 
|  | mcfi.addTemp(this); | 
|  |  | 
|  | 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); | 
|  | } | 
|  |  | 
|  | // Constructor that requires the type of the temporary to be specified. | 
|  | // Both S1 and S2 may be NULL. | 
|  | TmpInstruction::TmpInstruction(MachineCodeForInstruction& mcfi, | 
|  | const Type *Ty, Value *s1, Value* s2, | 
|  | const std::string &name) | 
|  | : Instruction(Ty, Instruction::UserOp1, name) { | 
|  | mcfi.addTemp(this); | 
|  |  | 
|  | if (s1) | 
|  | Operands.push_back(Use(s1, this)); | 
|  | if (s2) | 
|  | Operands.push_back(Use(s2, this)); | 
|  |  | 
|  | // TmpInstructions should not be garbage checked. | 
|  | LeakDetector::removeGarbageObject(this); | 
|  | } | 
|  |  | 
|  | } // end namespace llvm |