This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the EGCS project.
Re: stupid.c, rip
- To: Richard Henderson <rth@cygnus.com>
- Subject: Re: stupid.c, rip
- From: Toon Moene <toon@moene.indiv.nluug.nl>
- Date: Sat, 17 Jul 1999 12:34:27 +0200
- CC: gcc-patches@egcs.cygnus.com
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <19990716161559.A28371@cygnus.com>
[ I'm cc'ing this message to gcc-patches@gcc.gnu.org, just to see if it
works ]
Richard Henderson wrote:
> One thing additional that's needed by local in order to do its
> job is a CFG, so we have to run flow. Which really would
> prefer to have things tidied a bit in jump. So:
>
> (A) Jump now does jump tensioning at -O0. We do delete
> unreachable insns.
>
> (B) Flow is run. We do remove unreachable blocks, but do
> not do block merging.
>
> (C) The needless uses are dead.
>
> (D) Flow does the right thing in mark_regs_live_at_end.
>
> (E) Nothing is done in global to restore stupid's putting
> `register' variables in registers. I don't really see
> this as interesting to a minimal-optimization mode,
> but if we do do something, global should be the one
> to do it.
Does this also mean we can now warn for the use of potentially
uninitialized variables without requesting the user to specify -O ?
I think that would be conceptually a great advantage.
Use of uninitialized variables constitutes a large segment of the bug
reports "not in GNU Fortran" because Fortran allows implicit
declaration:
NRECEIVE = 10
...
IF (NRECIEVE .EQ. 10) THEN
...
and it always hard to explain to most Fortran users that "we cannot warn
for uninitialized variables unless you specify -O, because [follows some
compiler theory] and we do not do that analysis unless optimizing".
Cheers,
--
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
GNU Fortran: http://world.std.com/~burley/g77.html