Use type checking predicates

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@543 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2001-09-10 20:10:26 +00:00
parent 79a4aeb61c
commit c4e09ec453

View File

@@ -468,7 +468,7 @@ CreateAddConstInstruction(const InstructionNode* instrNode)
MachineInstr* minstr = NULL; MachineInstr* minstr = NULL;
Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue(); Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue();
assert(constOp->getValueType() == Value::ConstantVal); assert(constOp->isConstant());
// Cases worth optimizing are: // Cases worth optimizing are:
// (1) Add with 0 for float or double: use an FMOV of appropriate type, // (1) Add with 0 for float or double: use an FMOV of appropriate type,
@@ -476,13 +476,11 @@ CreateAddConstInstruction(const InstructionNode* instrNode)
// //
const Type* resultType = instrNode->getInstruction()->getType(); const Type* resultType = instrNode->getInstruction()->getType();
if (resultType == Type::FloatTy || if (resultType == Type::FloatTy || resultType == Type::DoubleTy) {
resultType == Type::DoubleTy) double dval = ((ConstPoolFP*) constOp)->getValue();
{ if (dval == 0.0)
double dval = ((ConstPoolFP*) constOp)->getValue(); minstr = CreateMovFloatInstruction(instrNode, resultType);
if (dval == 0.0) }
minstr = CreateMovFloatInstruction(instrNode, resultType);
}
return minstr; return minstr;
} }
@@ -521,7 +519,7 @@ CreateSubConstInstruction(const InstructionNode* instrNode)
MachineInstr* minstr = NULL; MachineInstr* minstr = NULL;
Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue(); Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue();
assert(constOp->getValueType() == Value::ConstantVal); assert(constOp->isConstant());
// Cases worth optimizing are: // Cases worth optimizing are:
// (1) Sub with 0 for float or double: use an FMOV of appropriate type, // (1) Sub with 0 for float or double: use an FMOV of appropriate type,
@@ -628,7 +626,7 @@ CreateMulConstInstruction(const InstructionNode* instrNode,
bool needNeg = false; bool needNeg = false;
Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue(); Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue();
assert(constOp->getValueType() == Value::ConstantVal); assert(constOp->isConstant());
// Cases worth optimizing are: // Cases worth optimizing are:
// (1) Multiply by 0 or 1 for any type: replace with copy (ADD or FMOV) // (1) Multiply by 0 or 1 for any type: replace with copy (ADD or FMOV)
@@ -752,7 +750,7 @@ CreateDivConstInstruction(const InstructionNode* instrNode,
getMinstr2 = NULL; getMinstr2 = NULL;
Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue(); Value* constOp = ((InstrTreeNode*) instrNode->rightChild())->getValue();
assert(constOp->getValueType() == Value::ConstantVal); assert(constOp->isConstant());
// Cases worth optimizing are: // Cases worth optimizing are:
// (1) Divide by 1 for any type: replace with copy (ADD or FMOV) // (1) Divide by 1 for any type: replace with copy (ADD or FMOV)
@@ -1099,7 +1097,7 @@ FixConstantOperands(const InstructionNode* vmInstrNode,
Value* opValue = mop.getVRegValue(); Value* opValue = mop.getVRegValue();
if (opValue->getValueType() == Value::ConstantVal) if (opValue->isConstant())
{ {
unsigned int machineRegNum; unsigned int machineRegNum;
int64_t immedValue; int64_t immedValue;
@@ -1170,7 +1168,7 @@ MakeLoadConstInstr(Instruction* vmInstr,
TmpInstruction*& tmpReg, TmpInstruction*& tmpReg,
MachineInstr*& getMinstr2) MachineInstr*& getMinstr2)
{ {
assert(val->getValueType() == Value::ConstantVal); assert(val->isConstant());
MachineInstr* minstr; MachineInstr* minstr;
@@ -1700,7 +1698,7 @@ GetInstructionsByRule(InstructionNode* subtreeRoot,
Value* firstUse = (Value*) * result->use_begin(); Value* firstUse = (Value*) * result->use_begin();
bool discardResult = bool discardResult =
(result->use_size() == 1 (result->use_size() == 1
&& firstUse->getValueType() == Value::InstructionVal && firstUse->isInstruction()
&& ((Instruction*) firstUse)->getOpcode() == Instruction::Br); && ((Instruction*) firstUse)->getOpcode() == Instruction::Br);
bool mustClearReg; bool mustClearReg;