Re: get the number of spilling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



thanks for Jeff and Vladimir.

I will try the way that Jeff provided

In fact, I don't quite understand what reload do and when reload do
after I read gcc's wiki...



2009/10/7 Jeff Law <law@xxxxxxxxxx>:
> On 10/06/09 21:20, Vladimir Makarov wrote:
>>
>> kito wrote:
>>>
>>> Hello everybody:
>>> I want to count the number of spilling.
>>> I have try to compile file with -fdump-rtl-ira
>>> And then use `grep Spilling *.ira | wc -l`
>>> Does it's right way to get the number of spilling?
>>>
>> That is a wrong way to find real spills.   Lines with Spilling is actually
>> reported by reload pass and it means only that reload is checking
>> constraints for insns (it is not real spills).  Reload pass can do several
>> such iterations.  The more hard registers usages, the more iterations are
>> usually needed.  Therefore you are getting that lines with 'Spilling' have
>> -O1 < -O2 < -O3.
>
> Also note that some spills are significantly more costly than others.
> Secondary & tertiary reloads, secondary memory and the like all come to
> mind.
>
> If you just want static counts, an easy way to do this would be to scan the
> insns after IRA has completed.  Mark each uid encountered in a bitmap.  Then
> rescan the insns after reload (or better, after the post-reload optimizers)
> -- clearly any insns not in the bitmap are spill code.
>
> That's not perfect as it'll miss cases where we reload by replacing a REG
> with a MEM and the result is a valid insn, but it'll be a hell of a lot
> closer than trying to scan the .ira dumps.
>
> I'm pondering such a scheme, combined with classifying the spill insns
> (load, store, arith) and block entry profiling to get a dynamic picture of
> the spill code we're executing.
>
> jeff
>
>


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux