mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Simplify code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14424 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
98ebce1a6f
commit
af754dbf65
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user