mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-13 09:33:50 +00:00
Though the previous xform applies to literally dozens (hundreds?) of variables
in SPEC, the subsequent optimziations that we are after don't play with with FP values, so disable this xform for them. Really we just don't want stuff like: double G; (always 0 or 412312.312) = G; turning into: bool G_b; = G_b ? 412312.312 : 0; We'd rather just do the load. -Chris git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18819 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6a8c46cde3
commit
077f1a8292
@ -954,7 +954,8 @@ bool GlobalOpt::ProcessInternalGlobal(GlobalVariable *GV,
|
||||
// Otherwise, if the global was not a boolean, we can shrink it to be a
|
||||
// boolean.
|
||||
if (Constant *SOVConstant = dyn_cast<Constant>(GS.StoredOnceValue))
|
||||
if (GV->getType()->getElementType() != Type::BoolTy) {
|
||||
if (GV->getType()->getElementType() != Type::BoolTy &&
|
||||
!GV->getType()->getElementType()->isFloatingPoint()) {
|
||||
DEBUG(std::cerr << " *** SHRINKING TO BOOL: " << *GV);
|
||||
ShrinkGlobalToBoolean(GV, SOVConstant);
|
||||
++NumShrunkToBool;
|
||||
|
Loading…
x
Reference in New Issue
Block a user