This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
- From: "rguenth at tat dot physik dot uni-tuebingen dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Mar 2004 11:43:41 -0000
- Subject: [Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
- References: <20040120183908.13776.kgardas@objectsecurity.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2004-03-13 11:43 -------
Subject: Re: [tree-ssa] Many C++ compile-time regression in
3.5-tree-ssa 040120
dberlin at gcc dot gnu dot org wrote:
> ------- Additional Comments From dberlin at gcc dot gnu dot org 2004-03-13 02:10 -------
> (In reply to comment #14)
>
>>Subject: Re: [tree-ssa] Many C++ compile-time regression in
>> 3.5-tree-ssa 040120
>>
>>On Fri, 2004-03-12 at 21:02, dberlin at dberlin dot org wrote:
>>
>>
>>>I can't fix the algorithmic properties of the SSAPRE algorithm we use,
>>>which is what you are running into, i'm betting.
>>>
>>
>>Could we add thresholds to back away from overly complicated functions?
>>
>>
>>Diego.
>>
>>
>
>
>
> I need to know what exactly the properties of these functions are, it's unclear.
> As i said, i'm working on it.
Remember you need to patch the compiler to support
__attribute__((leafify)) to trigger the problem with the tramp3d-v2.cpp
testcase. I suspect the huge number of basic blocks comes from inlining
as I suspect at least one new basic block is inserted per inlined
function, no? So with a lot of C++ abstraction inside a leafified
function you get a lot of basic blocks. But I suppose a lot of them
could be eliminated easily?
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13776