RFR: 8131362: aarch64: C2 does not handle large stack offsets
aph at redhat.com
Fri Jul 17 09:29:25 UTC 2015
On 17/07/15 10:12, Edward Nevill wrote:
> On Fri, 2015-07-17 at 10:01 +0100, Andrew Haley wrote:
>> On 17/07/15 09:52, Edward Nevill wrote:
>>>>> Should it be +8 instead of +4? Or these offsets are not in bytes?:
>>>>> + unspill(rscratch1, true, src_offset);
>>>>> + spill(rscratch1, true, dst_offset);
>>>>> + unspill(rscratch1, true, src_offset+4);
>>>>> + spill(rscratch1, true, dst_offset+4);
>>> Ouch! Good catch.
>>> New webrev.
>> I'm a bit more concerned that this did not fail in testing. I guess
>> there were no tests at all for stack-stack spills.
> Correct. And it would have to be a 128 bit vector stack-stack spill with
> an offset >= 512. How would you even provoke such a thing.
With a highly-vectorizable test case with a zillion temporaries, I guess.
But I don't know why HotSpot would ever do stack-stack spills. The very
idea of stack-stack spilling makes no sense to me.
More information about the hotspot-compiler-dev