Deadly optimization bug (all gcc versions!)
Toon Moene
toon@moene.indiv.nluug.nl
Tue Aug 31 23:20:00 GMT 1999
Toon Moene wrote:
> David Edelsohn wrote:
> > Maybe combine is trying some alternate instructions, failing, and
> > then not properly restoring the instructions?
>
> Or the other way around (I see a couple of NOTE_INSN_DELETED in the
> .combine dump where the .flow dump still has something like:
>
> (insn 4 31 6 (set (reg/v:SI 22)
> (mem/f:SI (reg:SI 16 %argp) 0)) 48 {movsi+2} (nil)
> (expr_list:REG_EQUIV (mem/f:SI (reg:SI 16 %argp) 0)
> (nil)))
>
> [ Flow is run before combine, isn't it - doesn't combine need some
> flow graph info to decide whether certain combine's are valid ? ]
Sorry, got this backwards. Reprise:
Flow runs.
Flow dumps resulting list of insns into .flow dump file
Combine runs.
Combine dumps resulting list of insns into .combine dump file.
Hence:
diff blah.c.flow blah.c.combine
shows the insns added/removed by combine.
Therefore, insns removed were removed by combine.
[ Sigh - shift brain in forward gear ]
--
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
More information about the Gcc
mailing list