mirror of
https://github.com/RPCS3/llvm.git
synced 2025-04-12 19:18:48 +00:00
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:
parent
9faab9bd93
commit
518f6fa310
@ -1337,7 +1337,14 @@ unsigned CastInst::isEliminableCastPair(
|
|||||||
// PTRTOINT n/a Pointer n/a Integral Unsigned
|
// PTRTOINT n/a Pointer n/a Integral Unsigned
|
||||||
// INTTOPTR n/a Integral Unsigned Pointer n/a
|
// INTTOPTR n/a Integral Unsigned Pointer n/a
|
||||||
// BITCONVERT = FirstClass n/a FirstClass 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 =
|
const unsigned numCastOps =
|
||||||
Instruction::CastOpsEnd - Instruction::CastOpsBegin;
|
Instruction::CastOpsEnd - Instruction::CastOpsBegin;
|
||||||
static const uint8_t CastResults[numCastOps][numCastOps] = {
|
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 -+
|
{ 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, 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 |
|
{ 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, 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 }, // 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 }, // UIToFP +- firstOp
|
||||||
{ 99,99,99, 0, 0,99,99, 0, 0,99,99, 4 }, // SIToFP |
|
{ 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 |
|
{ 99,99,99, 0, 0,99,99, 1, 0,99,99, 4 }, // FPTrunc |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user