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: Joe Buck <jbuck at synopsys dot com>
- Subject: Re: C++ compile-time regressions (was: GCC 3.0.1 Status Report)
- From: Gabriel Dos Reis <gdr at codesourcery dot com>
- Date: 24 Jul 2001 19:56:01 +0200
- Cc: gdr at codesourcery dot com (Gabriel Dos Reis), 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)
- Organization: CodeSourcery, LLC
- References: <200107241743.KAA08441@atrus.synopsys.com>
Joe Buck <jbuck@synopsys.com> writes:
| > 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).
Yes, I have similar concern with "small" classes like color, point,
vector classes in my personal scientific visualization applications.
| 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.
Thanks.
-- Gaby
CodeSourcery, LLC http://www.codesourcery.com