RFR: 8241438: Move IntelJccErratum mitigation code to platform-specific code

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Mar 23 20:18:55 UTC 2020


Hi Erik

Why you calling Compile::current() in PhaseOutput()?
Base class Phase has C value set already.

I don't think you can use virtual method compute_padding() as you do. Call nodes and other have own versions.
The same for alignment_required().
I would suggest instead to add PhaseOutput platform specific methods and pass Node* parameter.

In pd_alignment_required() you implicitly use knowledge that relocInfo::addr_unit() on x86 is 1.
At least add comment about that.

Thanks,
Vladimir

On 3/23/20 6:09 AM, Erik Österlund wrote:
> Hi,
> 
> There is some platform-specific code in PhaseOutput that deals with the IntelJccErratum mitigation,
> which is ifdef:ed in shared code. It should move to platform-specific code.
> 
> This patch exposes the iteration state of PhaseOutput, which allows hiding the Intel-specific code
> completely in x86-specific files.
> 
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8241438/webrev.00/
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8241438
> 
> Thanks,
> /Erik


More information about the hotspot-compiler-dev mailing list