diff options
author | Jeff Law <law@redhat.com> | 2011-01-13 06:41:03 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2011-01-13 06:41:03 -0700 |
commit | 29fa95ed577bb9080f25c4d3d8c694b40051e87a (patch) | |
tree | 63481903a2a1e2fc61101558fa5703b5c7af933d /gcc/lcm.c | |
parent | 71d12276670423b5a6bc35ba79feb481feed7c31 (diff) | |
download | gcc-29fa95ed577bb9080f25c4d3d8c694b40051e87a.zip gcc-29fa95ed577bb9080f25c4d3d8c694b40051e87a.tar.gz gcc-29fa95ed577bb9080f25c4d3d8c694b40051e87a.tar.bz2 |
re PR rtl-optimization/39077 (GCSE-optimization causes enormous binary size increase (~20 times !))
* PR rtl-optimization/39077
* doc/invoke.texi (max-gcse-insertion-ratio): Document.
* params.h (MAX_GCSE_INSERTION_RATIO): Define.
* params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
* lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
* gcse.c (prune_insertions_deletions): New function.
(compute_pre_data): Use it.
From-SVN: r168747
Diffstat (limited to 'gcc/lcm.c')
-rw-r--r-- | gcc/lcm.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1,6 +1,6 @@ /* Generic partial redundancy elimination with lazy code motion support. Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, - 2010 Free Software Foundation, Inc. + 2010, 2011 Free Software Foundation, Inc. This file is part of GCC. @@ -451,6 +451,8 @@ pre_edge_lcm (int n_exprs, sbitmap *transp, *insert = sbitmap_vector_alloc (num_edges, n_exprs); *del = sbitmap_vector_alloc (last_basic_block, n_exprs); + sbitmap_vector_zero (*insert, num_edges); + sbitmap_vector_zero (*del, last_basic_block); compute_insert_delete (edge_list, antloc, later, laterin, *insert, *del); sbitmap_vector_free (laterin); |