Convert BinaryOperand and UnaryOperator to only take instruction types of

the appropriate enum


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2001-07-07 20:17:23 +00:00
parent a41f50dea8
commit 9f3d27654a
5 changed files with 21 additions and 11 deletions

View File

@@ -55,14 +55,18 @@ public:
// create() - Construct a unary instruction, given the opcode
// and its operand.
//
static UnaryOperator *create(unsigned Op, Value *Source);
static UnaryOperator *create(UnaryOps Op, Value *Source);
UnaryOperator(Value *S, unsigned iType, const string &Name = "")
UnaryOperator(Value *S, UnaryOps iType, const string &Name = "")
: Instruction(S->getType(), iType, Name) {
Operands.reserve(1);
Operands.push_back(Use(S, this));
}
inline UnaryOps getOpcode() const {
return (UnaryOps)Instruction::getOpcode();
}
virtual Instruction *clone() const {
return create(getOpcode(), Operands[0]);
}
@@ -82,10 +86,10 @@ public:
// create() - Construct a binary instruction, given the opcode
// and the two operands.
//
static BinaryOperator *create(unsigned Op, Value *S1, Value *S2,
static BinaryOperator *create(BinaryOps Op, Value *S1, Value *S2,
const string &Name = "");
BinaryOperator(unsigned iType, Value *S1, Value *S2,
BinaryOperator(BinaryOps iType, Value *S1, Value *S2,
const string &Name = "")
: Instruction(S1->getType(), iType, Name) {
Operands.reserve(2);
@@ -95,6 +99,10 @@ public:
Operands[0]->getType() == Operands[1]->getType());
}
inline BinaryOps getOpcode() const {
return (BinaryOps)Instruction::getOpcode();
}
virtual Instruction *clone() const {
return create(getOpcode(), Operands[0], Operands[1]);
}

View File

@@ -18,7 +18,7 @@
class GenericBinaryInst : public BinaryOperator {
public:
GenericBinaryInst(unsigned Opcode, Value *S1, Value *S2,
GenericBinaryInst(BinaryOps Opcode, Value *S1, Value *S2,
const string &Name = "")
: BinaryOperator(Opcode, S1, S2, Name) {
}