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



Steven Bosscher <steven at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |steven at gcc dot gnu.org



--- Comment #2 from Steven Bosscher <steven at gcc dot gnu.org> 2013-03-12 
23:00:07 UTC ---

The first assumption is recorded at loop-iv.c:2472:



Breakpoint 7, iv_number_of_iterations (loop=0x3fffb5dc0ee0,

insn=0x3fffb5db6fa8, condition=0x3fffb5fd13c8, desc=0x3fffffffdf98)

    at ../../trunk/gcc/loop-iv.c:2472

2472                      alloc_EXPR_LIST (0, assumption,

desc->noloop_assumptions);

(gdb) p assumption

$1 = (rtx) 0x3fffb5fd1410

(gdb) p debug_rtx(assumption)

(eq:SI (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ]) 4)

    (const_int 0 [0]))

$2 = void

(gdb) cont

Continuing.



The second comes from loop-iv.c:2623:

Breakpoint 8, iv_number_of_iterations (loop=0x3fffb5dc0ee0,

insn=0x3fffb5db6fa8, condition=0x3fffb5fd13c8, desc=0x3fffffffdf98)

    at ../../trunk/gcc/loop-iv.c:2623

2623                        alloc_EXPR_LIST (0, assumption,

desc->noloop_assumptions);

(gdb) p debug_rtx(assumption)

(gtu:SI (plus:SI (subreg:SI (reg:DI 163 [ ivtmp.33D.2058+-4 ]) 4)

        (const_int 1 [0x1]))

    (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ]) 4))





The second one is simplified using initial values at loop-iv.c:2777:

2777      simplify_using_initial_values (loop, IOR, &desc->noloop_assumptions);

(gdb) p debug_rtx(desc->noloop_assumptions)

(expr_list:REG_DEP_TRUE (gtu:SI (plus:SI (subreg:SI (reg:DI 163 [

ivtmp.33D.2058+-4 ]) 4)

            (const_int 1 [0x1]))

        (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ]) 4))

    (expr_list:REG_DEP_TRUE (eq:SI (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ])

4)

            (const_int 0 [0]))

        (nil)))

$15 = void

(gdb) next

2778      simplify_using_initial_values (loop, IOR, &desc->infinite);

(gdb) p debug_rtx(desc->noloop_assumptions)

(expr_list:REG_DEP_TRUE (eq:SI (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ]) 4)

        (const_int 0 [0]))

    (expr_list:REG_DEP_TRUE (eq:SI (subreg:SI (reg:DI 153 [ bnd.10D.2035+-4 ])

4)

            (const_int 0 [0]))

        (nil)))

$16 = void

(gdb) 



Insofar I can claim to understand loop-iv.c, this is supposed to be

cleaned up by eliminate_implied_conditions.

Reply via email to