tree-ssa-ter.c (is_replaceable_p): Do not TER across location or block changes with -Og.
2013-03-08 Richard Biener <rguenther@suse.de> * tree-ssa-ter.c (is_replaceable_p): Do not TER across location or block changes with -Og. Fix for location / block encoding changes and PHI arguments with locations. From-SVN: r196539
This commit is contained in:
parent
c78f387a45
commit
b7aa4e9afc
|
@ -1,3 +1,9 @@
|
||||||
|
2013-03-08 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
* tree-ssa-ter.c (is_replaceable_p): Do not TER across location
|
||||||
|
or block changes with -Og. Fix for location / block encoding
|
||||||
|
changes and PHI arguments with locations.
|
||||||
|
|
||||||
2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
|
2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
|
||||||
|
|
||||||
* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
|
* bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
|
||||||
|
|
|
@ -399,22 +399,22 @@ is_replaceable_p (gimple stmt, bool ter)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
locus1 = gimple_location (stmt);
|
locus1 = gimple_location (stmt);
|
||||||
block1 = gimple_block (stmt);
|
block1 = LOCATION_BLOCK (locus1);
|
||||||
|
locus1 = LOCATION_LOCUS (locus1);
|
||||||
|
|
||||||
if (gimple_code (use_stmt) == GIMPLE_PHI)
|
if (gimple_code (use_stmt) == GIMPLE_PHI)
|
||||||
{
|
locus2 = gimple_phi_arg_location (use_stmt, PHI_ARG_INDEX_FROM_USE (use_p));
|
||||||
locus2 = 0;
|
|
||||||
block2 = NULL_TREE;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
locus2 = gimple_location (use_stmt);
|
||||||
locus2 = gimple_location (use_stmt);
|
block2 = LOCATION_BLOCK (locus2);
|
||||||
block2 = gimple_block (use_stmt);
|
locus2 = LOCATION_LOCUS (locus2);
|
||||||
}
|
|
||||||
|
|
||||||
if (!optimize
|
if ((!optimize || optimize_debug)
|
||||||
&& ter
|
&& ter
|
||||||
&& ((locus1 && locus1 != locus2) || (block1 && block1 != block2)))
|
&& ((locus1 != UNKNOWN_LOCATION
|
||||||
|
&& locus1 != locus2)
|
||||||
|
|| (block1 != NULL_TREE
|
||||||
|
&& block1 != block2)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/* Used in this block, but at the TOP of the block, not the end. */
|
/* Used in this block, but at the TOP of the block, not the end. */
|
||||||
|
|
Loading…
Reference in New Issue