RFR: 8269122: The use of "extern const" for Register definitions generates poor code [v3]
Andrew Haley
aph at openjdk.java.net
Wed Jun 23 08:38:27 UTC 2021
On Tue, 22 Jun 2021 17:26:48 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
>> Andrew Haley has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Update copyright
>
> src/hotspot/share/asm/register.hpp line 50:
>
>> 48: #define AS_REGISTER(type,name) ((type)name##_##type##EnumValue)
>> 49:
>> 50: #ifndef USE_EXTERN_CONST_FOR_REGISTER_DEFINITIONS
>
> I can see this conditionalization being useful for development and testing of this change, but why keep it and the old, now dead, code?
The old code was a workaround for compilers that don't handle inline constants well. There are ports that I don't know about or can't test, and there are some outside the main jdk/jdk tree. If this change breaks any of them, all they have to do is define USE_EXTERN_CONST_FOR_REGISTER_DEFINITIONS. If it turns out that no such systems still exist, we can take it out.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4554
More information about the hotspot-compiler-dev
mailing list