diff options
author | Richard Guenther <rguenther@suse.de> | 2010-01-13 10:07:47 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-01-13 10:07:47 +0000 |
commit | 688a482d6359352c16efb6eee97a29894eb3ba37 (patch) | |
tree | 76a66b356728d78d55e273dfdd2f9ffb112f4a4b /gcc/passes.c | |
parent | 288de41a81d13fcc90d611d3c2b9c1fe7b0d09a7 (diff) | |
download | gcc-688a482d6359352c16efb6eee97a29894eb3ba37.zip gcc-688a482d6359352c16efb6eee97a29894eb3ba37.tar.gz gcc-688a482d6359352c16efb6eee97a29894eb3ba37.tar.bz2 |
re PR middle-end/42678 (ICE with lto1 in expand_mult, at expmed.c:3253)
2010-01-13 Richard Guenther <rguenther@suse.de>
PR lto/42678
* tree-pass.h (PROP_gimple_lcx): New.
* cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
* passes.c (init_optimization_passes): Move pass_lower_complex_O0
before the final cleanup_eh.
(dump_properties): Dump PROP_gimple_lcx.
* tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
(tree_lower_complex_O0): Remove.
(gate_no_optimization): Run if PROP_gimple_lcx is not set.
(pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
tree_lower_complex, schedule TODO_update_ssa.
* lto-streamer-out.c (output_function): Stream the functions
properties.
* lto-streamer-in.c (input_function): Likewise.
(lto_read_body): Do not override them here.
* gfortran.dg/lto/20100110-1_0.f90: New testcase.
From-SVN: r155853
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index fde3379..a04a5ef 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -728,7 +728,6 @@ init_optimization_passes (void) NEXT_PASS (pass_refactor_eh); NEXT_PASS (pass_lower_eh); NEXT_PASS (pass_build_cfg); - NEXT_PASS (pass_lower_complex_O0); NEXT_PASS (pass_lower_vector); NEXT_PASS (pass_warn_function_return); NEXT_PASS (pass_build_cgraph_edges); @@ -943,6 +942,7 @@ init_optimization_passes (void) NEXT_PASS (pass_uncprop); NEXT_PASS (pass_local_pure_const); } + NEXT_PASS (pass_lower_complex_O0); NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_lower_resx); NEXT_PASS (pass_nrv); @@ -1883,6 +1883,8 @@ dump_properties (FILE *dump, unsigned int props) fprintf (dump, "PROP_rtl\n"); if (props & PROP_gimple_lomp) fprintf (dump, "PROP_gimple_lomp\n"); + if (props & PROP_gimple_lcx) + fprintf (dump, "PROP_gimple_lcx\n"); } void |