From 607f460c8b9e032b3fec25313b032bf07788b354 Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Wed, 1 Mar 2006 17:46:56 +0000 Subject: [PATCH] re PR tree-optimization/26443 (ICE in add_virtual_operand, at tree-ssa-operands.c:1867) 2006-03-01 Daniel Berlin Fix PR tree-optimization/26443 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage to todo and PROP_tmt_usage to properties_destroyed. * tree-ssa-ccp.c (pass_ccp): Ditto. (pass_store_ccp): Ditto. * tree-ssa-dom.c (pass_dominator): Ditto. From-SVN: r111608 --- gcc/ChangeLog | 9 +++++++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/g++.dg/tree-ssa/pr26443.C | 20 ++++++++++++++++++++ gcc/tree-ssa-ccp.c | 8 ++++---- gcc/tree-ssa-dom.c | 5 +++-- gcc/tree-vrp.c | 5 +++-- 6 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 gcc/testsuite/g++.dg/tree-ssa/pr26443.C diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f59ad08d1eb..a30b5cd373a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2006-03-01 Daniel Berlin + + Fix PR tree-optimization/26443 + * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage + to todo and PROP_tmt_usage to properties_destroyed. + * tree-ssa-ccp.c (pass_ccp): Ditto. + (pass_store_ccp): Ditto. + * tree-ssa-dom.c (pass_dominator): Ditto. + 2006-03-01 Diego Novillo * tree-ssa-operands.c: Cleanup whitespace. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5c50deb8f6..eb29008ef10 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2006-03-01 Daniel Berlin + + * g++.dg/tree-ssa/pr26443.C: New test case. + 2006-02-28 Andrew Pinski PR middle-end/26022 diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr26443.C b/gcc/testsuite/g++.dg/tree-ssa/pr26443.C new file mode 100644 index 00000000000..1db87ab8778 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr26443.C @@ -0,0 +1,20 @@ +// { dg-do compile } + +struct A +{ + double x[4]; +}; + +struct B +{ + A y[2]; +}; + +A foo(B *p) +{ + for ( int i=0; i<4; ++i ) + p->y[1].x[i]=0; + + A a; + return a; +} diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 309a2827848..c0a2c6e9f31 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -1403,11 +1403,11 @@ struct tree_opt_pass pass_ccp = TV_TREE_CCP, /* tv_id */ PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ 0, /* properties_provided */ - 0, /* properties_destroyed */ + PROP_tmt_usage, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_cleanup_cfg | TODO_dump_func | TODO_update_ssa | TODO_ggc_collect | TODO_verify_ssa - | TODO_verify_stmts, /* todo_flags_finish */ + | TODO_verify_stmts | TODO_update_tmt_usage, /* todo_flags_finish */ 0 /* letter */ }; @@ -1440,12 +1440,12 @@ struct tree_opt_pass pass_store_ccp = TV_TREE_STORE_CCP, /* tv_id */ PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ 0, /* properties_provided */ - 0, /* properties_destroyed */ + PROP_tmt_usage, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa | TODO_ggc_collect | TODO_verify_ssa | TODO_cleanup_cfg - | TODO_verify_stmts, /* todo_flags_finish */ + | TODO_verify_stmts | TODO_update_tmt_usage, /* todo_flags_finish */ 0 /* letter */ }; diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index c79a4ca636a..9742ebb8071 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -377,12 +377,13 @@ struct tree_opt_pass pass_dominator = TV_TREE_SSA_DOMINATOR_OPTS, /* tv_id */ PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ 0, /* properties_provided */ - 0, /* properties_destroyed */ + PROP_tmt_usage, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa | TODO_cleanup_cfg - | TODO_verify_ssa, /* todo_flags_finish */ + | TODO_verify_ssa + | TODO_update_tmt_usage, /* todo_flags_finish */ 0 /* letter */ }; diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 96a18277349..a680bf49d60 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -4571,12 +4571,13 @@ struct tree_opt_pass pass_vrp = TV_TREE_VRP, /* tv_id */ PROP_ssa | PROP_alias, /* properties_required */ 0, /* properties_provided */ - 0, /* properties_destroyed */ + PROP_tmt_usage, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_ssa | TODO_dump_func - | TODO_update_ssa, /* todo_flags_finish */ + | TODO_update_ssa + | TODO_update_tmt_usage, /* todo_flags_finish */ 0 /* letter */ }; -- 2.30.2