tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants also generate copies.

2011-03-25  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
	also generate copies.
	(fini_copy_prop): Handle constant values properly.

From-SVN: r171465
This commit is contained in:
Richard Guenther 2011-03-25 16:28:15 +00:00 committed by Richard Biener
parent 21385db052
commit fdc2de95e9
2 changed files with 10 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2011-03-25 Richard Guenther <rguenther@suse.de>
* tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
also generate copies.
(fini_copy_prop): Handle constant values properly.
2011-03-25 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare

View File

@ -315,8 +315,9 @@ stmt_may_generate_copy (gimple stmt)
/* Otherwise, the only statements that generate useful copies are
assignments whose RHS is just an SSA name that doesn't flow
through abnormal edges. */
return (gimple_assign_rhs_code (stmt) == SSA_NAME
&& !SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_assign_rhs1 (stmt)));
return ((gimple_assign_rhs_code (stmt) == SSA_NAME
&& !SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_assign_rhs1 (stmt)))
|| is_gimple_min_invariant (gimple_assign_rhs1 (stmt)));
}
@ -771,6 +772,7 @@ fini_copy_prop (void)
of the representative to the first solution we find if
it doesn't have one already. */
if (copy_of[i].value != var
&& TREE_CODE (copy_of[i].value) == SSA_NAME
&& POINTER_TYPE_P (TREE_TYPE (var))
&& SSA_NAME_PTR_INFO (var)
&& !SSA_NAME_PTR_INFO (copy_of[i].value))