+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
/* 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)));
}
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))