This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/47464] [4.6 Regression] Many gomp failures


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

--- Comment #3 from Jeffrey A. Law <law at redhat dot com> 2011-01-26 04:33:24 UTC ---
Stranger and stranger.   It looks like my patch may have exposed a latent bug
in the post-reload ifcvt pass.  It's moving some insns which clearly aren't
safe to move.

IF-CASE-1 found, start 2, then 3
rescanning insn with uid = 25.
deleting insn with uid = 25.
changing bb of uid 27
changing bb of uid 69
  from 3 to 2
changing bb of uid 28
  from 3 to 2
changing bb of uid 78
  unscanned insn
scanning new insn with uid = 79.
deleting insn with uid = 26.
deleting insn with uid = 65.
deleting insn with uid = 66.
deleting block 3
shoving block 9 into 3
Conversion succeeded on pass 1.

[ ... ]

(insn 69 27 28 2 (set (reg/v:SI 0 ax [orig:75 ix ] [75])
        (mem/s/c:SI (reg/f:DI 1 dx [orig:71 D.17991 ] [71]) [6 MEM[(const
struct VEC_tree_base *)D.17991_13].num+0 S4 A64])) j.c:7464 64
{*movsi_internal}
     (nil))

(insn 28 69 24 2 (parallel [
            (set (reg/v:SI 0 ax [orig:75 ix ] [75])
                (plus:SI (reg/v:SI 0 ax [orig:75 ix ] [75])
                    (const_int -1 [0xffffffffffffffff])))
            (clobber (reg:CC 17 flags))
        ]) j.c:7464 252 {*addsi_1}
     (expr_list:REG_UNUSED (reg:CC 17 flags)
        (nil)))

(insn 24 28 25 2 (set (reg:CCZ 17 flags)
        (compare:CCZ (reg/f:DI 1 dx [orig:71 D.17991 ] [71])
            (const_int 0 [0]))) j.c:7464 3 {*cmpdi_ccno_1}
     (nil))

(jump_insn 25 24 78 2 (set (pc)
        (if_then_else (ne (reg:CCZ 17 flags)
                (const_int 0 [0]))
            (label_ref:DI 64)
            (pc))) j.c:7464 591 {*jcc_1}
     (expr_list:REG_DEAD (reg:CCZ 17 flags)
        (expr_list:REG_BR_PROB (const_int 8500 [0x2134])
            (nil)))

insns 69 & 28 had previously been in a different block and guarded by the
compare & jump at insns 24 & 25 respectively.    Very very interesting.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]