RFR (M) CR 8050147: StoreLoad barrier interferes with stack usages

Aleksey Shipilev aleksey.shipilev at oracle.com
Mon Aug 11 08:18:46 UTC 2014


On 08/08/2014 11:38 PM, John Rose wrote:
> On Aug 8, 2014, at 5:01 AM, Aleksey Shipilev <aleksey.shipilev at oracle.com> wrote:
> 
>> On 08/08/2014 02:57 AM, John Rose wrote:
>>>> Vladimir pointed where to look for frame structure [1], but I
>>>> still haven't parsed it to make an educated guess about how much to
>>>> step back. Any ideas?
>>>
>>> Callee saves will get spilled in the general spill area, IIRC.  That
>>> will be near the callee SP, which is unpredictable.
>>>
>>> I don't see any area in the generic frame layout which is reliably
>>> better than SP - CLSize.  Maybe SP - MaxTinyImmediateOffset, or the
>>> min of the two.
>>
>> Okay, let's go with this one then:
>> http://cr.openjdk.java.net/~shade/8050147/webrev.03/
> 
> Why 8+CLSize (40/72/136) instead of just CLSize (32/64/128)?
> Is there usually something hovering at sp(-8), like a frequently pushed temp?

The original experiment was taken without any knowledge if SP was
aligned to >8 or not. If 8-byte read from SP(0) splits the cache line,
then 8-byte read from SP(-CL) also splits the cache line *and* shares it
with SP(0). Additional 8-byte push back was to dodge this. But, it
appears the SP is aligned to 16 bytes?

If so, we can go with this:
 http://cr.openjdk.java.net/~shade/8050147/webrev.04/

-Aleksey.


More information about the hotspot-compiler-dev mailing list