RFC: Remove DONT_USE_REGISTER_DEFINES on Sparc?

Per Liden per.liden at oracle.com
Fri Mar 23 09:44:09 UTC 2018


Ok, thanks! I'll file an RFE and send the patch out for formal review.

And yes, it passed hs-tier{1,2} in mach5.

/Per


On 2018-03-22 19:38, Vladimir Kozlov wrote:
> Yes, you can remove this code. Please, build fastdebug version of VM 
> too to verify that it works. And run tier1.
>
> Thanks,
> Vladimir
>
> On 3/22/18 6:39 AM, Erik Österlund wrote:
>> Hi Per,
>>
>> I welcome this change. Stealing the identifier G1 from the global 
>> name space seems like a problem. Inflating the libjvm.so size by 
>> ~0.3% on a SPARC machine does not seem like a problem.
>>
>> Thanks,
>> /Erik
>>
>> On 2018-03-22 12:14, Per Liden wrote:
>>> Hi,
>>>
>>> We recently ran into an unfortunate naming conflict, concerning "G1" 
>>> the garbage collector vs. "G1" the sparc register. We'd like to be 
>>> able to use "G1" as an enum value in various GC code, but 
>>> register_sparc.hpp defines "G1" as a macro, which obviously breaks 
>>> things.
>>>
>>> We're very reluctant to sprinkling #define DONT_USE_REGISTER_DEFINES 
>>> in GC code. An alternative would be to simply remove this 
>>> optimization in the sparc code. The comment in register_sparc.hpp 
>>> suggests that this was done to reduce the size of libjvm.so.
>>>
>>> I applied a patch[1] to remove the sparc macros and libjvm.so grew 
>>> by ~0.3% (66450K->66682K). Builds available here[2] and here[3].
>>>
>>> Given that the libjvm.so growth doesn't seem that bad, would people 
>>> be ok with removing the register defines on sparc? If so I'll file a 
>>> bug and send out the patch for formal review.
>>>
>>> The patch currently removes all register defines. There are of 
>>> course alternatives here in case someone things the libjvm growth is 
>>> unacceptable, like only remove general register, only G* registers, 
>>> etc.
>>>
>>> /Per
>>>
>>> [1] 
>>> http://cr.openjdk.java.net/~pliden/remove_G1_define_on_sparc/webrev.0
>>>
>>> [2] 
>>> https://java.se.oracle.com/artifactory/jdk-dev-local/jdk/personal/per.liden/2018-03-22-0935410.per.liden.hs/bundles/solaris-sparcv9/ 
>>>
>>>
>>> [3] 
>>> https://java.se.oracle.com/artifactory/jdk-dev-local/jdk/personal/per.liden/2018-03-22-0952297.per.liden.hs/bundles/solaris-sparcv9/ 
>>>
>>



More information about the hotspot-compiler-dev mailing list