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

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Wed Jun 29 07:23:18 UTC 2016


Hi,

I changed this to 'Enhancement'.
Also, I found another, very similar cleanup which I added to this change:
generate_stack_overflow_check() in templateInterpreterGenerator.hpp.
I added default parameters noreg so that the signature is the same for all
Platforms.
I think it makes sense to add this because aarch and the closed platforms 
need to be tested with this, and this way double work can be avoided.

I would appreciate to get a review for this rather simple change!
http://cr.openjdk.java.net/~goetz/wr16/8160245-simplifyC1/webrev.01

Best regards,
  Goetz.



> -----Original Message-----
> From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-
> bounces at openjdk.java.net] On Behalf Of Lindenmaier, Goetz
> Sent: Freitag, 24. Juni 2016 16:35
> To: hotspot-compiler-dev at openjdk.java.net
> Subject: RE: RFR(M): 8160245: C1: Clean up platform #defines in c1_LIR.hpp.
> 
> Sorry, the webrev URL was missing, added below:
> 
> Hi,
> 
> 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 introduced
> 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.
> 
> 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.01/
> 
> 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