Ping: IRA-based register pressure calculation for RTL loop invariant motion
Vladimir Makarov
vmakarov@redhat.com
Tue Oct 20 03:39:00 GMT 2009
David Edelsohn wrote:
> On Mon, Oct 19, 2009 at 12:17 PM, Vladimir Makarov <vmakarov@redhat.com> wrote:
>
>
>>> I think we could switch it on by default at -O3 for a selected group of
>>> targets. Itanium overall also improves with the new heuristics. That
>>> would
>>> make it power and Itanium.
>>>
>> The patch is below. Ok to commit?
>>
>>> Did you try restricting the heuristics to certain
>>> register classes, like SSE registers on x86_64?
>>>
>>>
>>>
>> No, I did not try. I am not sure it is worth to do it.
>>
>>
>> 2009-10-19 Vladimir Makarov <vmakarov@redhat.com>
>>
>> * doc/invoke.texi (fira-loop-pressure): Update default value.
>> * opts.c (decode_options): Remove default value setting for
>> flag_ira_loop_pressure.
>> * config/ia64/ia64.c (ia64_override_options): Set
>> flag_ira_loop_pressure up for -O3.
>> * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
>>
>
> Tests inside IBM do not show this IRA feature as an overall win for
> POWER. If we figure out and fix why artificially limiting
> rs6000_issue_rate to 1 for the first scheduler pass still helps (and
> it does), then this would make sense. Until then, please do not apply
> this patch to rs6000.
>
>
David, I think there is some misunderstanding. It is a different
patch. You are probably talking about register pressure sensitive insn
scheduling (by the way I am still working on its tuning). This patch is
about more accurate register pressure calculation to decide
profitability to do RTL loop invariant motion. SPEC2000 and polyhedron
benchmarks for power6 shows that this patch is a clear win. You could
test and benchmark this patch internally in IBM to confirm or deny my
observation if you wish.
More information about the Gcc-patches
mailing list