re PR target/69345 (459.GemsFDTD regression)
2016-01-20 Richard Biener <rguenther@suse.de> PR tree-optimization/69345 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function. (VN_INFO_PTR_INFO): Likewise. * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to info when it is equal between non-dominating SSA names. * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Make sure to look at original SSA infos. From-SVN: r232603
This commit is contained in:
parent
bf0bb9703a
commit
dd6f2cf98c
|
@ -1,3 +1,13 @@
|
|||
2016-01-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/69345
|
||||
* tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
|
||||
(VN_INFO_PTR_INFO): Likewise.
|
||||
* tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
|
||||
info when it is equal between non-dominating SSA names.
|
||||
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
|
||||
Make sure to look at original SSA infos.
|
||||
|
||||
2016-01-20 Jeff Law <law@redhat.com>
|
||||
|
||||
PR target/25114
|
||||
|
|
|
@ -4033,22 +4033,22 @@ eliminate_dom_walker::before_dom_children (basic_block b)
|
|||
{
|
||||
basic_block sprime_b = gimple_bb (SSA_NAME_DEF_STMT (sprime));
|
||||
if (POINTER_TYPE_P (TREE_TYPE (lhs))
|
||||
&& SSA_NAME_PTR_INFO (lhs)
|
||||
&& !SSA_NAME_PTR_INFO (sprime))
|
||||
&& VN_INFO_PTR_INFO (lhs)
|
||||
&& ! VN_INFO_PTR_INFO (sprime))
|
||||
{
|
||||
duplicate_ssa_name_ptr_info (sprime,
|
||||
SSA_NAME_PTR_INFO (lhs));
|
||||
VN_INFO_PTR_INFO (lhs));
|
||||
if (b != sprime_b)
|
||||
mark_ptr_info_alignment_unknown
|
||||
(SSA_NAME_PTR_INFO (sprime));
|
||||
}
|
||||
else if (!POINTER_TYPE_P (TREE_TYPE (lhs))
|
||||
&& SSA_NAME_RANGE_INFO (lhs)
|
||||
&& !SSA_NAME_RANGE_INFO (sprime)
|
||||
else if (INTEGRAL_TYPE_P (TREE_TYPE (lhs))
|
||||
&& VN_INFO_RANGE_INFO (lhs)
|
||||
&& ! VN_INFO_RANGE_INFO (sprime)
|
||||
&& b == sprime_b)
|
||||
duplicate_ssa_name_range_info (sprime,
|
||||
SSA_NAME_RANGE_TYPE (lhs),
|
||||
SSA_NAME_RANGE_INFO (lhs));
|
||||
VN_INFO_RANGE_INFO (lhs));
|
||||
}
|
||||
|
||||
/* Inhibit the use of an inserted PHI on a loop header when
|
||||
|
|
|
@ -3092,7 +3092,11 @@ set_ssa_val_to (tree from, tree to)
|
|||
/* Use that from the dominator. */
|
||||
SSA_NAME_PTR_INFO (to) = SSA_NAME_PTR_INFO (from);
|
||||
}
|
||||
else
|
||||
else if (! SSA_NAME_PTR_INFO (from)
|
||||
/* Handle the case of trivially equivalent info. */
|
||||
|| memcmp (SSA_NAME_PTR_INFO (to),
|
||||
SSA_NAME_PTR_INFO (from),
|
||||
sizeof (ptr_info_def)) != 0)
|
||||
{
|
||||
/* Save old info. */
|
||||
if (! VN_INFO (to)->info.ptr_info)
|
||||
|
|
|
@ -243,4 +243,24 @@ vn_valueize (tree name)
|
|||
return name;
|
||||
}
|
||||
|
||||
/* Get at the original range info for NAME. */
|
||||
|
||||
inline range_info_def *
|
||||
VN_INFO_RANGE_INFO (tree name)
|
||||
{
|
||||
return (VN_INFO (name)->info.range_info
|
||||
? VN_INFO (name)->info.range_info
|
||||
: SSA_NAME_RANGE_INFO (name));
|
||||
}
|
||||
|
||||
/* Get at the original pointer info for NAME. */
|
||||
|
||||
inline ptr_info_def *
|
||||
VN_INFO_PTR_INFO (tree name)
|
||||
{
|
||||
return (VN_INFO (name)->info.ptr_info
|
||||
? VN_INFO (name)->info.ptr_info
|
||||
: SSA_NAME_PTR_INFO (name));
|
||||
}
|
||||
|
||||
#endif /* TREE_SSA_SCCVN_H */
|
||||
|
|
Loading…
Reference in New Issue