clear global_live_at_* in clear_log_links
Geoff Keating
geoffk@cygnus.com
Mon Jul 31 17:49:00 GMT 2000
> Date: Mon, 31 Jul 2000 15:43:22 -0700
> From: Richard Henderson <rth@cygnus.com>
> On Mon, Jul 31, 2000 at 03:30:51PM -0700, Geoff Keating wrote:
> > Yes. Perhaps clear_log_links should also clear
> > global_live_at_{start,end}?
>
> Seems reasonable.
This fixes the regression failures triggered by some of the recent
loop changes, or SSA changes, or something---it doesn't really matter,
the bug was always present just hidden.
FAIL: gcc.c-torture/execute/loop-3c.c compilation, -O3 -fssa
FAIL: gcc.c-torture/execute/loop-4b.c compilation, -O3 -fssa
I'll commit it when the bootstrap finishes---I've already done 'make
check' with no failures on powerpc-linux.
--
- Geoffrey Keating <geoffk@cygnus.com>
===File ~/patches/cygnus/flow-liveatstart.patch=============
2000-07-31 Geoff Keating <geoffk@cygnus.com>
* flow.c (clear_log_links): Nuke global_live_at_start and
global_live_at_end data, since if the log_links stuff is invalid
so is global_live_at_*.
Index: flow.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/flow.c,v
retrieving revision 1.311
diff -p -u -u -p -r1.311 flow.c
--- flow.c 2000/07/30 23:05:52 1.311
+++ flow.c 2000/08/01 00:38:34
@@ -7746,16 +7747,30 @@ flow_loop_outside_edge_p (loop, e)
}
-/* Clear LOG_LINKS fields of insns in a chain. */
+/* Clear LOG_LINKS fields of insns in a chain.
+ Also nuke the global_live_at_{start,end} data. */
void
clear_log_links (insns)
rtx insns;
{
rtx i;
+ int b;
+
for (i = insns; i; i = NEXT_INSN (i))
if (GET_RTX_CLASS (GET_CODE (i)) == 'i')
LOG_LINKS (i) = 0;
+
+ for (b = 0; b < n_basic_blocks; b++)
+ {
+ basic_block bb = BASIC_BLOCK (i);
+
+ bb->global_live_at_start = NULL;
+ bb->global_live_at_end = NULL;
+ }
+
+ ENTRY_BLOCK_PTR->global_live_at_end = NULL;
+ EXIT_BLOCK_PTR->global_live_at_start = NULL;
}
/* Given a register bitmap, turn on the bits in a HARD_REG_SET that
============================================================
More information about the Gcc-regression
mailing list