This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: minor code-quality regression vs. 2.95
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: minor code-quality regression vs. 2.95
- From: Clinton Popetz <cpopetz at cygnus dot com>
- Date: Thu, 13 Apr 2000 16:38:21 -0500
- Cc: Zack Weinberg <zack at wolery dot cumb dot org>, gcc-patches at gcc dot gnu dot org
- References: <20000411214541.A9400@wolery.cumb.org> <20000412160823.A13160@cpopetz.com> <20000413002927.A13966@cygnus.com>
On Thu, Apr 13, 2000 at 12:29:27AM -0700, Richard Henderson wrote:
> On Wed, Apr 12, 2000 at 04:08:23PM -0500, Clinton Popetz wrote:
> > It's really a pain that we can't depend on lifetime information throughout
> > the compiler. Is there an estimate on how much work it would take to make
> > the scheduler maintain REG_DEAD notes?
>
>
> I'm fairly certain that commentary is out of date as of
>
> Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
>
> or so.
This patch passes bootstrap and regression on x86, ppc, and alpha. Jeff Law
expressed concern that some other pass (besides the scheduler) may munge the
death notes, so this patch may not be safe despite the above testing.
I'll post the patch for ix86_expand_branch (from earlier in this thread) in a
separate message. With both patches, I get the original (better) code for
Zack's example.
-Clint
Thu Apr 13 14:12:05 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
* jump.c (delete_computation): Remove hack for broken schedulers.
Index: jump.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/jump.c,v
retrieving revision 1.116
diff -c -2 -p -r1.116 jump.c
*** jump.c 2000/03/26 22:43:59 1.116
--- jump.c 2000/04/13 19:01:10
*************** delete_computation (insn)
*** 4091,4104 ****
#endif
- #ifdef INSN_SCHEDULING
- /* ?!? The schedulers do not keep REG_DEAD notes accurate after
- reload has completed. The schedulers need to be fixed. Until
- they are, we must not rely on the death notes here. */
- if (reload_completed && flag_schedule_insns_after_reload)
- {
- delete_insn (insn);
- return;
- }
- #endif