re PR tree-optimization/44972 (ICE: in load_assign_lhs_subreplacements, at tree-sra...
authorMartin Jambor <mjambor@suse.cz>
Thu, 9 Sep 2010 23:38:23 +0000 (01:38 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 9 Sep 2010 23:38:23 +0000 (01:38 +0200)
commitd242d0634ca719a7c791ba626b4e6f87dd337e5e
tree951106b686b0e34fa68f8a0a3c5bed5ca6806875
parentfffe1e4064df4724b2e5e7c57d8e478bd3ab22fe
re PR tree-optimization/44972 (ICE: in load_assign_lhs_subreplacements, at tree-sra.c:2475)

2010-09-10  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/44972
* tree-sra.c: Include toplev.h.
(build_ref_for_offset): Entirely reimplemented.
(build_ref_for_model): New function.
(build_user_friendly_ref_for_offset): New function.
(analyze_access_subtree): Removed build_ref_for_offset check.
(propagate_subaccesses_across_link): Likewise.
(create_artificial_child_access): Use
build_user_friendly_ref_for_offset.
(propagate_subaccesses_across_link): Likewise.
(ref_expr_for_all_replacements_p): Removed.
(generate_subtree_copies): Updated comment.  Use build_ref_for_model.
(sra_modify_expr): Use build_ref_for_model.
(load_assign_lhs_subreplacements): Likewise.
(sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
checks for return values of build_ref_for_offset.
* ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
build_ref_for_offset.
* ipa-prop.h: Include gimple.h
* ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
(ipa_analyze_indirect_call_uses): Update comment.
* Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
(IPA_PROP_H): Likewise.

* testsuite/gcc.dg/ipa/ipa-sra-1.c: Adjust scanning expressions.
* testsuite/gcc.dg/tree-ssa/pr45144.c: Likewise.
* testsuite/gcc.dg/tree-ssa/forwprop-5.c: Likewise and scan optimzed
dump instead.
        * testsuite/g++.dg/torture/pr44972.C: New test.

From-SVN: r164136
gcc/ChangeLog
gcc/Makefile.in
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/ipa-prop.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/torture/pr44972.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c
gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
gcc/testsuite/gcc.dg/tree-ssa/pr45144.c
gcc/tree-sra.c