[Stackmaps][X86TTI] Fix think-o in getIntImmCost calculation.

The cost for the first four stackmap operands was always TCC_Free.
This is only true for the first two operands. All other operands
are TCC_Free if they are within 64bit.

llvm-svn: 204738
This commit is contained in:
Juergen Ributzka 2014-03-25 18:01:23 +00:00
parent 47790bba49
commit 5e317b86d2

View File

@ -858,17 +858,16 @@ unsigned X86TTI::getIntImmCost(Intrinsic::ID IID, unsigned Idx,
case Intrinsic::umul_with_overflow:
if ((Idx == 1) && Imm.getBitWidth() <= 64 && isInt<32>(Imm.getSExtValue()))
return TCC_Free;
else
return X86TTI::getIntImmCost(Imm, Ty);
break;
case Intrinsic::experimental_stackmap:
if (Idx < 2)
if ((Idx < 2) || (Imm.getBitWidth() <= 64 && isInt<64>(Imm.getSExtValue())))
return TCC_Free;
break;
case Intrinsic::experimental_patchpoint_void:
case Intrinsic::experimental_patchpoint_i64:
if ((Idx < 4 ) ||
(Imm.getBitWidth() <= 64 && isInt<64>(Imm.getSExtValue())))
if ((Idx < 4) || (Imm.getBitWidth() <= 64 && isInt<64>(Imm.getSExtValue())))
return TCC_Free;
else
return X86TTI::getIntImmCost(Imm, Ty);
break;
}
return X86TTI::getIntImmCost(Imm, Ty);
}