This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix bootstrap failure on ppc-darwin
Richard Earnshaw wrote:
>>>> This patch begs the question why we are passing iterators by value at
>>>> all. Looking at the code generated for all of these little structures
>>>> we see huge numbers of structure copies that aren't being eliminated
>>>> even when the iterator functions get inlined.
>>> I have a patch pending which makes the iterators smaller and exclusively
>>> passes the address around.
>> sorry, I mean bitmap_iterators only, you're talking about all iterators
>> n'est pas?
My understanding is that SRA takes care of them. Modulo bugs, of course.
See for instance the mail where Andrew added the operand iterators:
--------- quote ---------
The iterator structure is a general purpose object which contains lots
of variables used to control the loops. We fully scalarize the
structure, and optimize out the unused portions, resulting in pretty
decent code for the loop.
--------- end quote ---------
Lately, some bug appeared and we stopped scalarizing copies of the bitmap
iterator. My understanding is that this optimization regression is the
underlying reason of the bootstrap failure on ppc-darwin. See
http://gcc.gnu.org/PR18268 for a reduced testcase which should be fixed