aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-if-conv.c
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-06-02 16:39:37 +0000
committerSebastian Pop <sebastian.pop@amd.com>2010-06-02 16:39:37 +0000
commit8c638b77f3ce27652fc039e083d59c7f07489b21 (patch)
tree4411eed49d576497752586d1a757f535660ddcf0 /gcc/tree-if-conv.c
parent732536f7e08fa2bc6ff772569ae25bd264ee8c1a (diff)
Only reset the GIMPLE_DEBUG information in the code gen of if-conversion.
2010-06-02 Sebastian Pop <sebastian.pop@amd.com> * 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: https://gcc.gnu.org/svn/gcc/trunk@160164 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r--gcc/tree-if-conv.c36
1 files changed, 22 insertions, 14 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index f6e8c969dc1..25cb9183739 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);
+ }
}
}