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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW
         AssignedTo|rguenth at gcc dot gnu.org  |unassigned at gcc dot
                   |                            |gnu.org

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-11 
13:22:08 UTC ---
Differences start in the ce1 dump where we go from

b/t.c.163r.cse_local:(code_label 30 17 29 4 4 "" [1 uses])
b/t.c.163r.cse_local:(code_label 25 22 26 8 1 "" [2 uses])

to

b/t.c.164r.ce1:(code_label 25 22 26 6 1 "" [3 uses])

with -g but with -g0 we have

a/t.c.163r.cse_local:(code_label 27 14 26 4 4 "" [1 uses])
a/t.c.163r.cse_local:(code_label 22 19 23 8 1 "" [2 uses])
a/t.c.164r.ce1:(code_label 27 14 26 4 4 "" [1 uses])
a/t.c.164r.ce1:(code_label 22 19 23 7 1 "" [2 uses])

ce1 dump differences show

-IF-CASE-2 found, start 2, else 4

-IF-THEN-JOIN block found, pass 1, test 5, then 6, join 7

+3 possible IF blocks searched.
+1 IF blocks converted.
+1 true changes made.


There are no appearant differences before ce1 so the issue must be
in rtl if conversion.

Note that it's weird that with -g we perform more if-conversion
than without.

Reply via email to