This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: C++ compile-time regressions (was: GCC 3.0.1 Status Report)
- To: gdr at codesourcery dot com (Gabriel Dos Reis)
- Subject: Re: C++ compile-time regressions (was: GCC 3.0.1 Status Report)
- From: Joe Buck <jbuck at synopsys dot COM>
- Date: Tue, 24 Jul 2001 10:43:08 -0700 (PDT)
- Cc: jbuck at synopsys dot com (Joe Buck), pfeifer at dbai dot tuwien dot ac dot at (Gerald Pfeifer), mark at codesourcery dot com (Mark Mitchell), gcc at gcc dot gnu dot org (gcc at gcc dot gnu dot org)
> Joe Buck <jbuck@synopsys.COM> writes:
>
> | > I'm rather sure, though, that g++ is not generating efficient code for
> | > complicated, nested STL and STL-like structures in the presence of
> | > libstdc++-v3 (iterators are now classes instead of pointers).
> |
> | But the classes have one member, so we should still be getting equivalent
> | code, provided that we get ADDRESSOF working as well as it did in 2.95.x.
>
> Now that we have a branch for doing tree-based optimization, what do
> you think about trying to implement "scalar replacement of aggregates"
> optimization and see how good we can do with STL-like structures?
Yes! This is very important, not just for STL-like structures, but for
proxy objects (e.g. references to bits in a packed bit vector class).
You'll find some good test cases in Boost, particularly the Boost Graph
Library; our current compilers (2.95.x or 3.0.x) do poorly because many
of the iterators and function results are classes with more than one data
member.