[Fwd: [LTO] Request for testing: Last merge from trunk before final merge]
Tobias Burnus
burnus@net-b.de
Mon Sep 28 19:48:00 GMT 2009
Toon Moene wrote:
> Diego sent this to the gcc list on the preparations of merging the LTO
> branch into trunk.
> fortran (it had 143 failures).
>
> Did he write us which fixes he thinks are needed ? Otherwise, we'd
> better ask (I will do this if you think that's OK).
There is in general the problem that the gfortran front end generates
slightly wrong GIMPLE at some cases - and newer features are better at
hitting them. There are for instance still a couple of
"-fwhole-file"-related bugs, where wrong declarations cause wrong-code
optimizations (esp. at -O2 or higher - and even worse when combined with
-fwhole-program). With LTO more things can go wrong (-flto implies
-fwhole-file): The optimization is done between .o files and thus the
decl in the diffferent files need to be consistent.
I think a lot of the failures come due to mixing C and Fortran; in
particular "COMMON /foo/ single_variable". It is interoperable with a
normal variable while gfortran creates a struct. That's PR 41227. One
has to do some thinking how to handle this properly as one needs to emit
a DW_TAG_COMMON_BLOCK with the name of the block while there is actually
only a single (global) variable.
I am not sure whether it is still an issue, but at least some failures
were due to a wrong declaration for
"external foo" and "external bar; integer bar". One should update the
declaration based on the call - which is what C does and which makes
also sense for diagnostics. The main issue here are procedure pointers
as RHS and LHS should be the same type. See PR 40969.
Whole-file PRs: 30668, 41059, 41056, 40011, 40873.
I think we should try to make first some progress before one
investigates the other failures, but if you want, you can ask nevertheless.
The current plan is to first get some patches merged before Stage3
(mainly Janus' and Paul's ongoing OOP effort) and concentrate in Stage3
on fixing some remaining OOP bits and work on the bugs. Thus LTO will be
more a work item in Stage3 ...
Tobias
More information about the Fortran
mailing list