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

Tobias Hartmann tobias.hartmann at oracle.com
Thu Jul 14 05:53:58 UTC 2016


all tests passed. If everyone's fine with the latest webrev, I'll push this tomorrow:

Goetz, could you please send me a changeset?


On 12.07.2016 15:07, Tobias Hartmann wrote:
> Hi Goetz,
> On 12.07.2016 15:03, Lindenmaier, Goetz wrote:
>> Hi Tobias,
>> thanks for looking at this change!  Your additional edits look good. 
>> Thanks for spotting the problems.  Unfortunately, we don't have
>> an aarch machine.
> Sure, no problem! Actually, the 'fnoreg->encoding()' also showed up on SPARC.
>> I also had problems with these asserts, as_FloatRegister(reg2)
>> was not possible on ppc  because it did not like the '-1'. But that's
>> fixed already.
> Yes, I noticed that.
>> Good to know there is no PPC32 any more. I always had to take
>> care I don't break anything in this 'invisible team mate' on Power :)
>> Do you want me to make a new webrev with your edits? I'm 
>> fine with the webrev you mailed around, though.  I tested it to
>> work on ppc, and I'll run it through our tests tonight.
> You don't have to create a new webrev. If all testing passed and the other reviewers agree with the latest webrev, you can send me a changeset and I'll push it.
> Best regards,
> Tobias
>> Best regards,
>>   Goetz.
>>> -----Original Message-----
>>> From: Tobias Hartmann [mailto:tobias.hartmann at oracle.com]
>>> Sent: Dienstag, 12. Juli 2016 14:34
>>> To: Vladimir Kozlov <vladimir.kozlov at oracle.com>; Lindenmaier, Goetz
>>> <goetz.lindenmaier at sap.com>; hotspot-compiler-dev at openjdk.java.net
>>> Cc: hotspot-runtime-dev at openjdk.java.net runtime <hotspot-runtime-
>>> dev at openjdk.java.net>
>>> Subject: Re: [ping] RFR(M): 8160245: C1: Clean up platform #defines in
>>> c1_LIR.hpp.
>>> Hi Goetz,
>>> On 06.07.2016 00:47, Vladimir Kozlov wrote:
>>>> 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:
>>>> http://mail.openjdk.java.net/pipermail/jdk9-dev/2016-June/004443.html
>>>> Someone from Oracle have to sponsor it and do related closed code
>>> changes and testing.
>>> webrev.03 looks good to me. I did the necessary closed changes (review is
>>> pending) and also adapted some of the public code.
>>> Incremental webrev:
>>> http://cr.openjdk.java.net/~thartmann/8160245/webrev.incremental/
>>> Full webrev:
>>> http://cr.openjdk.java.net/~thartmann/8160245/webrev.00/
>>> I removed the PPC code because since 8u33, SE Embedded releases no
>>> longer include 32-bit PPC platforms (see [1], [2]) and moved the ARM specific
>>> code into the closed sources. I adapted the copyright dates and refactored
>>> some related code.
>>> Also, 'fnoreg->encoding()' fails because RegisterImpl::encoding() checks for
>>> is_valid() which is false for fnoreg. We should check for
>>> 'as_FloatRegister(reg2) != fnoreg'.
>>> Tests are running.
>>> Best regards,
>>> Tobias
>>> [1] http://www.oracle.com/technetwork/java/embedded/embedded-
>>> se/downloads/index.html
>>> [2] http://www.oracle.com/technetwork/java/javase/certconfig-
>>> 2095354.html
>>>> Thanks,
>>>> Vladimir
>>>> 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