From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gabriel Dos Reis To: Joe Buck Cc: gdr@codesourcery.com (Gabriel Dos Reis), pfeifer@dbai.tuwien.ac dot@(Gerald Pfeifer), mark@codesourcery.com (Mark Mitchell), gcc@gcc.gnu.org (gcc@gcc.gnu.org) Subject: Re: C++ compile-time regressions (was: GCC 3.0.1 Status Report) Date: Tue, 24 Jul 2001 10:56:00 -0000 Message-id: References: <200107241743.KAA08441@atrus.synopsys.com> X-SW-Source: 2001-07/msg01588.html Joe Buck writes: | > Joe Buck 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