Fix Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll, fixing an out-of-

stack-space issue in the ppc bootstrap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32244 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2006-12-05 23:43:59 +00:00
parent 9faab9bd93
commit 518f6fa310

View File

@ -1337,7 +1337,14 @@ unsigned CastInst::isEliminableCastPair(
// PTRTOINT n/a Pointer n/a Integral Unsigned
// INTTOPTR n/a Integral Unsigned Pointer n/a
// BITCONVERT = FirstClass n/a FirstClass n/a
//
//
// NOTE: some transforms are safe, but we consider them to be non-profitable.
// For example, we could merge "fptoui double to uint" + "zext uint to ulong",
// into "fptoui double to ulong", but this loses information about the range
// of the produced value (we no longer know the top-part is all zeros).
// Further this conversion is often much more expensive for typical hardware,
// and causes issues when building libgcc. We disallow fptosi+sext for the
// same reason.
const unsigned numCastOps =
Instruction::CastOpsEnd - Instruction::CastOpsBegin;
static const uint8_t CastResults[numCastOps][numCastOps] = {
@ -1349,8 +1356,8 @@ unsigned CastInst::isEliminableCastPair(
{ 1, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // Trunc -+
{ 8, 1, 9,99,99, 2, 0,99,99,99, 2, 3 }, // ZExt |
{ 8, 0, 1,99,99, 0, 2,99,99,99, 0, 3 }, // SExt |
{ 0, 1, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToUI |
{ 0, 0, 1,99,99, 0, 0,99,99,99, 0, 3 }, // FPToSI |
{ 0, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToUI |
{ 0, 0, 0,99,99, 0, 0,99,99,99, 0, 3 }, // FPToSI |
{ 99,99,99, 0, 0,99,99, 0, 0,99,99, 4 }, // UIToFP +- firstOp
{ 99,99,99, 0, 0,99,99, 0, 0,99,99, 4 }, // SIToFP |
{ 99,99,99, 0, 0,99,99, 1, 0,99,99, 4 }, // FPTrunc |