[Bug target/29840] [4.3 Regression] build/genconditions ../../gcc/gcc/config/pa/pa.md > tmp-condmd.c: /bin/sh: 13354 Memory fault(coredump)

steven at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Nov 25 23:17:00 GMT 2006



------- Comment #10 from steven at gcc dot gnu dot org  2006-11-25 23:17 -------
>From the cse1 dump:
Register 72 used 1 times across 0 insns; set 1 time; dies in 0 places; pointer.

So there is only a single DEF for reg 72.  The set for this DEF is:

(insn 112 2 7 2 foo.c:13 (set (reg/f:DI 72)
        (plus:DI (reg/f:DI 29 %r29)
            (const_int -64 [0xffffffffffffffc0]))) -1 (nil)
    (nil))

fwprop replaces occurences of (reg 72) with (plus (reg 29) (const_int -64)).
This is the diff between the cse1 and fwprop dump:

--- attachment.cse1   2006-11-26 00:13:55.000000000 +0100
+++ attachment.fwprop1        2006-11-26 00:14:06.000000000 +0100
(....)
@@ -112,7 +172,8 @@
             (const_int -64 [0xffffffffffffffc0]))) -1 (nil)
     (nil))

-(insn 7 112 8 2 foo.c:13 (set (mem/f/c/i:DI (reg/f:DI 72) [8 cond+0 S8 A64])
+(insn 7 112 8 2 foo.c:13 (set (mem/f/c/i:DI (plus:DI (reg/f:DI 29 %r29)
+                (const_int -64 [0xffffffffffffffc0])) [8 cond+0 S8 A64])
         (reg:DI 26 %r26 [ cond ])) 124 {*pa.md:4480} (nil)
     (nil))

@@ -397,7 +458,8 @@

 (insn 71 70 74 5 foo.c:25 (set (mem:QI (reg/f:DI 68 [ D.1944 ]) [0 S1 A8])
         (reg:QI 88)) 104 {*pa.md:3322} (nil)
-    (nil))
+    (expr_list:REG_EQUAL (const_int 10 [0xa])
+        (nil)))

 (insn 74 71 75 5 foo.c:25 (set (reg/f:DI 91)
         (plus:DI (reg/f:DI 68 [ D.1944 ])
@@ -462,7 +524,8 @@
 (note 89 88 91 7 [bb 7] NOTE_INSN_BASIC_BLOCK)

 (insn 91 89 92 7 foo.c:26 (set (reg/f:DI 26 %r26 [ cond ])
-        (mem/f/c/i:DI (reg/f:DI 72) [8 cond+0 S8 A64])) 124 {*pa.md:4480}
(nil)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 29 %r29)
+                (const_int -64 [0xffffffffffffffc0])) [8 cond+0 S8 A64])) 124
{*pa.md:4480} (nil)
     (nil))

 (insn 92 91 93 7 foo.c:26 (set (reg/f:DI 29 %r29)
@@ -503,7 +566,8 @@
         (nil)))

 (insn 98 97 99 7 foo.c:27 (set (reg/f:DI 25 %r25 [ cond ])
-        (mem/f/c/i:DI (reg/f:DI 72) [8 cond+0 S8 A64])) 124 {*pa.md:4480}
(nil)
+        (mem/f/c/i:DI (plus:DI (reg/f:DI 29 %r29)
+                (const_int -64 [0xffffffffffffffc0])) [8 cond+0 S8 A64])) 124
{*pa.md:4480} (nil)
     (nil))

 (insn 99 98 100 7 foo.c:27 (set (reg/f:DI 29 %r29)


Someone care to explain why this is a wrong transformation by fwprop?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29840



More information about the Gcc-bugs mailing list