Changes in directory llvm/lib/VMCore:
Instructions.cpp updated: 1.52 -> 1.53 --- Log message: Fix Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll, fixing an out-of- stack-space issue in the ppc bootstrap. --- Diffs of the changes: (+10 -3) Instructions.cpp | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) Index: llvm/lib/VMCore/Instructions.cpp diff -u llvm/lib/VMCore/Instructions.cpp:1.52 llvm/lib/VMCore/Instructions.cpp:1.53 --- llvm/lib/VMCore/Instructions.cpp:1.52 Mon Dec 4 21:28:26 2006 +++ llvm/lib/VMCore/Instructions.cpp Tue Dec 5 17:43:59 2006 @@ -1337,7 +1337,14 @@ // 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 @@ { 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 | _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits