Commit 718d3588 by Sebastian Pop Committed by Sebastian Pop

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.

From-SVN: r160164
parent 5521cae9
2010-06-02 Sebastian Pop <sebastian.pop@amd.com> 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.
2010-06-02 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/44363 PR middle-end/44363
* tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable, * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
return false instead. return false instead.
......
...@@ -509,15 +509,7 @@ predicate_bbs (loop_p loop) ...@@ -509,15 +509,7 @@ predicate_bbs (loop_p loop)
case GIMPLE_LABEL: case GIMPLE_LABEL:
case GIMPLE_ASSIGN: case GIMPLE_ASSIGN:
case GIMPLE_CALL: case GIMPLE_CALL:
break;
case GIMPLE_DEBUG: 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; break;
case GIMPLE_COND: case GIMPLE_COND:
...@@ -900,7 +892,8 @@ process_phi_nodes (struct loop *loop) ...@@ -900,7 +892,8 @@ process_phi_nodes (struct loop *loop)
} }
/* Remove all GIMPLE_CONDs and GIMPLE_LABELs of all the basic blocks /* 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 static void
remove_conditions_and_labels (loop_p loop) remove_conditions_and_labels (loop_p loop)
...@@ -917,11 +910,26 @@ remove_conditions_and_labels (loop_p loop) ...@@ -917,11 +910,26 @@ remove_conditions_and_labels (loop_p loop)
continue; continue;
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); ) for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); )
if (gimple_code (gsi_stmt (gsi)) == GIMPLE_COND switch (gimple_code (gsi_stmt (gsi)))
|| gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL) {
gsi_remove (&gsi, true); case GIMPLE_COND:
else case GIMPLE_LABEL:
gsi_next (&gsi); 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);
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment