Simplify code

llvm-svn: 14424
This commit is contained in:
Chris Lattner 2004-06-26 19:31:26 +00:00
parent f11b67bb8f
commit 74e2acfcdd
1 changed files with 5 additions and 12 deletions

View File

@ -243,25 +243,18 @@ static inline ExprType negate(const ExprType &E, Value *V) {
//
ExprType llvm::ClassifyExpr(Value *Expr) {
assert(Expr != 0 && "Can't classify a null expression!");
if (Expr->getType() == Type::FloatTy || Expr->getType() == Type::DoubleTy)
if (Expr->getType()->isFloatingPoint())
return Expr; // FIXME: Can't handle FP expressions
switch (Expr->getValueType()) {
case Value::InstructionVal: break; // Instruction... hmmm... investigate.
case Value::TypeVal: case Value::BasicBlockVal:
case Value::FunctionVal: default:
//assert(0 && "Unexpected expression type to classify!");
std::cerr << "Bizarre thing to expr classify: " << Expr << "\n";
return Expr;
case Value::GlobalVariableVal: // Global Variable & Function argument:
case Value::ArgumentVal: // nothing known, return variable itself
return Expr;
case Value::ConstantVal: // Constant value, just return constant
if (Constant *C = dyn_cast<Constant>(Expr)) {
if (ConstantInt *CPI = dyn_cast<ConstantInt>(cast<Constant>(Expr)))
// It's an integral constant!
return ExprType(CPI->isNullValue() ? 0 : CPI);
return Expr;
} else if (!isa<Instruction>(Expr)) {
return Expr;
}
Instruction *I = cast<Instruction>(Expr);
const Type *Ty = I->getType();