re PR tree-optimization/50058 (FAIL: g++.dg/tree-ssa/pr41186.C)
2011-08-15 Richard Guenther <rguenther@suse.de> PR tree-optimization/50058 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate copy matching. From-SVN: r177760
This commit is contained in:
parent
3598da8066
commit
4f9dbaaae8
|
@ -1,3 +1,9 @@
|
||||||
|
2011-08-15 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/50058
|
||||||
|
* tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
|
||||||
|
copy matching.
|
||||||
|
|
||||||
2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
|
2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
|
||||||
|
|
||||||
PR target/50022
|
PR target/50022
|
||||||
|
|
|
@ -1485,12 +1485,11 @@ vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *vr_)
|
||||||
may fail when comparing types for compatibility. But we really
|
may fail when comparing types for compatibility. But we really
|
||||||
don't care here - further lookups with the rewritten operands
|
don't care here - further lookups with the rewritten operands
|
||||||
will simply fail if we messed up types too badly. */
|
will simply fail if we messed up types too badly. */
|
||||||
if (j == 0 && i == 0
|
if (j == 0 && i >= 0
|
||||||
&& VEC_index (vn_reference_op_s, lhs_ops, 0)->opcode == MEM_REF
|
&& VEC_index (vn_reference_op_s, lhs_ops, 0)->opcode == MEM_REF
|
||||||
&& VEC_index (vn_reference_op_s, vr->operands, i)->opcode == MEM_REF
|
&& VEC_index (vn_reference_op_s, lhs_ops, 0)->off != -1
|
||||||
&& tree_int_cst_equal
|
&& (VEC_index (vn_reference_op_s, lhs_ops, 0)->off
|
||||||
(VEC_index (vn_reference_op_s, lhs_ops, 0)->op0,
|
== VEC_index (vn_reference_op_s, vr->operands, i)->off))
|
||||||
VEC_index (vn_reference_op_s, vr->operands, i)->op0))
|
|
||||||
i--, j--;
|
i--, j--;
|
||||||
|
|
||||||
/* i now points to the first additional op.
|
/* i now points to the first additional op.
|
||||||
|
|
Loading…
Reference in New Issue