aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-03-30 14:26:19 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-03-30 13:26:19 +0000
commit1540f9ebc44746587921098f337cfac4916aa285 (patch)
tree12369072c4ba8d9aa884e9c5cd3c573fb0e9abc2 /gcc/flow.c
parentd83975041fbb3eb13524c5f8af1743e5e11c8f9e (diff)
downloadgcc-1540f9ebc44746587921098f337cfac4916aa285.zip
gcc-1540f9ebc44746587921098f337cfac4916aa285.tar.gz
gcc-1540f9ebc44746587921098f337cfac4916aa285.tar.bz2
local-alloc.c (local_alloc): Avoid call of update_equiv_regs when not optimizing.
* local-alloc.c (local_alloc): Avoid call of update_equiv_regs when not optimizing. * toplev.c (rest_of_compilation): Cann mark_constant_function only when optimizing. * flow.c (calculate_global_regs_live): Ensure that all AUX fields are NULL. * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK. (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it. (try_optimize_cfg): clear all AUX fields. * i386.c (aligned_operand): Be prepared for SUBREGed registers. (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG. (ix86_address_cost): Be prepared for SUBREGed registers. (legitimate_address_p): Accept SUBREGed registers. From-SVN: r51604
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 61008e6..332d543 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1071,6 +1071,16 @@ calculate_global_regs_live (blocks_in, blocks_out, flags)
regset_head new_live_at_end_head;
int i;
+ /* Some passes used to forget clear aux field of basic block causing
+ sick behaviour here. */
+#ifdef ENABLE_CHECKING
+ if (ENTRY_BLOCK_PTR->aux || EXIT_BLOCK_PTR->aux)
+ abort ();
+ for (i = 0; i < n_basic_blocks; i++)
+ if (BASIC_BLOCK (i)->aux)
+ abort ();
+#endif
+
tmp = INITIALIZE_REG_SET (tmp_head);
new_live_at_end = INITIALIZE_REG_SET (new_live_at_end_head);
call_used = INITIALIZE_REG_SET (call_used_head);