[ping] RFR(M): 8160245: C1: Clean up platform #defines in c1_LIR.hpp.

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Jul 5 22:47:30 UTC 2016

CC to runtime too since it has changes in Interpreter and affects our 
closed code.

Hi Goetz,

Please, set "Fix Version".

And if it is JDK 9 you need FC Extension Request since you converted it 
to Enhancement:


Someone from Oracle have to sponsor it and do related closed code 
changes and testing.


On 7/5/16 3:47 AM, Lindenmaier, Goetz wrote:
> Hi,
> could someone please have a look at this issue? I recap the description
> below, and I also updated the webrev which would no more apply to
> hs-comp:
> c1_LIR.hpp defines a row of functions guarded by platform
> defines. This is bad style and hinders new platform ports.
> (I'm working on S390 aka Z :))
> This change removes the majority of these defines. It introduces
> common headers, and moves implementations to c1_LIR_<cpu>.cpp files.
> It guards single_softfp() and double_softfp() by __SOFTFP__.
> This is not used in any openJdk platform. I can not test this
> on the closed platforms ARM32 and PPC32.
> It removes the guard around the LIR_Address constructor. There
> is no point in guarding this code, verify() assures by
> assertions that it can not be misused. I also introduce a new
> constructor that leaves out the scale argument and introduce
> some usages on X86.
> This change also moves verify() to the new platform files. In the
> header, LIR_ADDRESS_PD_VERIFY was used to guard usage
> of pd_verify(). Neither of these are used in openJdk. If this define
> is used in the closed ports pd_verify() must be renamed to verify().
> The code that was previously guarded by ARM, ARM32 or PPC32 is
> moved to a properly guarded section in c1_LIR.cpp. Actually,
> it should be moved to according new files c1_LIR_<cpu>.cpp in
> the closed ports. But this way the change should basically
> work for the closed ports.
> I added fnoreg on x86 to note down the code similarly on all
> platforms.
> I cleaned up a flag with a limited range on PPC_32.
> generate_stack_overflow_check() in templateInterpreterGenerator.hpp
> is defined with different parameters for the platforms. I added default
> parameters noreg so that the signature is the same for all platforms.
> Please review this change. I please need a sponsor.
> https://bugs.openjdk.java.net/browse/JDK-8160245
> http://cr.openjdk.java.net/~goetz/wr16/8160245-simplifyC1/webrev.02/
> I built and tested this on linuxx86_64, solaris_sparc and
> the ppc platforms.
> Best regards,
>   Goetz.

More information about the hotspot-compiler-dev mailing list