From: spop Date: Wed, 2 Jun 2010 16:39:37 +0000 (+0000) Subject: Only reset the GIMPLE_DEBUG information in the code gen of if-conversion. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0812914835fc52792631d284676a263031c04a4d;p=thirdparty%2Fgcc.git Only reset the GIMPLE_DEBUG information in the code gen of if-conversion. 2010-06-02 Sebastian Pop * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG information. (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160164 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d64804d359b8..de6cb5b76eb6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-06-02 Sebastian Pop + + * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG + information. + (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information. + 2010-06-02 Sebastian Pop PR middle-end/44363 diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index f6e8c969dc1f..25cb91837398 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -509,15 +509,7 @@ predicate_bbs (loop_p loop) case GIMPLE_LABEL: case GIMPLE_ASSIGN: case GIMPLE_CALL: - break; - case GIMPLE_DEBUG: - /* ??? Should there be conditional GIMPLE_DEBUG_BINDs? */ - if (gimple_debug_bind_p (gsi_stmt (itr))) - { - gimple_debug_bind_reset_value (gsi_stmt (itr)); - update_stmt (gsi_stmt (itr)); - } break; case GIMPLE_COND: @@ -900,7 +892,8 @@ process_phi_nodes (struct loop *loop) } /* Remove all GIMPLE_CONDs and GIMPLE_LABELs of all the basic blocks - other than the exit and latch of the LOOP. */ + other than the exit and latch of the LOOP. Also resets the + GIMPLE_DEBUG information. */ static void remove_conditions_and_labels (loop_p loop) @@ -917,11 +910,26 @@ remove_conditions_and_labels (loop_p loop) continue; for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); ) - if (gimple_code (gsi_stmt (gsi)) == GIMPLE_COND - || gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL) - gsi_remove (&gsi, true); - else - gsi_next (&gsi); + switch (gimple_code (gsi_stmt (gsi))) + { + case GIMPLE_COND: + case GIMPLE_LABEL: + gsi_remove (&gsi, true); + break; + + case GIMPLE_DEBUG: + /* ??? Should there be conditional GIMPLE_DEBUG_BINDs? */ + if (gimple_debug_bind_p (gsi_stmt (gsi))) + { + gimple_debug_bind_reset_value (gsi_stmt (gsi)); + update_stmt (gsi_stmt (gsi)); + } + gsi_next (&gsi); + break; + + default: + gsi_next (&gsi); + } } }