mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 14:35:54 +00:00
Constant exprs are not efficiently negatable in practice. This disables
turning X - (constantexpr) into X + (-constantexpr) among other things. llvm-svn: 18935
This commit is contained in:
parent
006364762d
commit
763e852e7a
@ -309,10 +309,9 @@ static inline Value *dyn_castNegVal(Value *V) {
|
||||
if (BinaryOperator::isNeg(V))
|
||||
return BinaryOperator::getNegArgument(cast<BinaryOperator>(V));
|
||||
|
||||
// Constants can be considered to be negated values if they can be folded...
|
||||
if (Constant *C = dyn_cast<Constant>(V))
|
||||
if (!isa<UndefValue>(C))
|
||||
return ConstantExpr::getNeg(C);
|
||||
// Constants can be considered to be negated values if they can be folded.
|
||||
if (ConstantInt *C = dyn_cast<ConstantInt>(V))
|
||||
return ConstantExpr::getNeg(C);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user