aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-10-22 15:31:18 -0700
committerJim Wilson <wilson@gcc.gnu.org>1996-10-22 15:31:18 -0700
commitd1b9c52c2f9ac1fd43e44a42c179ad503d281cce (patch)
treefb5f68343a5ec71496748bf5e418721ba897dc12 /gcc
parentc9f99b6a232ac41d3ea3270e2886bc9552d2d9a4 (diff)
downloadgcc-d1b9c52c2f9ac1fd43e44a42c179ad503d281cce.zip
gcc-d1b9c52c2f9ac1fd43e44a42c179ad503d281cce.tar.gz
gcc-d1b9c52c2f9ac1fd43e44a42c179ad503d281cce.tar.bz2
(unroll_loop): Always reject loops with unbalanced blocks.
From-SVN: r12999
Diffstat (limited to 'gcc')
-rw-r--r--gcc/unroll.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index b720074..f5e3675 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -268,8 +268,12 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before,
of block_beg and block_end notes, because that would unbalance the block
structure of the function. This can happen as a result of the
"if (foo) bar; else break;" optimization in jump.c. */
+ /* ??? Gcc has a general policy that -g is never supposed to change the code
+ that the compiler emits, so we must disable this optimization always,
+ even if debug info is not being output. This is rare, so this should
+ not be a significant performance problem. */
- if (write_symbols != NO_DEBUG)
+ if (1 /* write_symbols != NO_DEBUG */)
{
int block_begins = 0;
int block_ends = 0;