From 8e1409e877b665217f4033b42e1da5153c7a2516 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Tue, 14 Feb 2006 00:19:49 +0100 Subject: [PATCH] re PR rtl-optimization/26235 (FAIL: gcc.c-torture/execute/ieee/fp-cmp-8l.c execution at -O1, -O2 and -Os) PR rtl-optimization/26235 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats. (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown format. From-SVN: r110939 --- gcc/ChangeLog | 7 +++++++ gcc/loop-invariant.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2498b57251d..a1a30e3bce4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-02-13 Zdenek Dvorak + + PR rtl-optimization/26235 + * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats. + (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown + format. + 2006-02-13 Jeff Law * tree-vrp.c (extract_range_from_binary_expr): Remove handling of diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c index ce827807954..a57857d3831 100644 --- a/gcc/loop-invariant.c +++ b/gcc/loop-invariant.c @@ -292,6 +292,8 @@ hash_invariant_expr_1 (rtx insn, rtx x) for (j = 0; j < XVECLEN (x, i); j++) val ^= hash_invariant_expr_1 (insn, XVECEXP (x, i, j)); } + else if (fmt[i] == 'i' || fmt[i] == 'n') + val ^= XINT (x, i); } return val; @@ -373,6 +375,14 @@ invariant_expr_equal_p (rtx insn1, rtx e1, rtx insn2, rtx e2) return false; } } + else if (fmt[i] == 'i' || fmt[i] == 'n') + { + if (XINT (e1, i) != XINT (e2, i)) + return false; + } + /* Unhandled type of subexpression, we fail conservatively. */ + else + return false; } return true; -- 2.30.2