String intrinsics defunct on arch != amd64 after 8141132: JEP 254: Compact Strings
Volker Simonis
volker.simonis at gmail.com
Thu Dec 17 11:15:29 UTC 2015
Hi,
thanks everybody for your comments.
I would suggest the following:
1. UseSSE42Intrinsics
- in shared code this flag is only used in library_call.cpp:
(!Matcher::has_match_rule(Op_StrIndexOf) || !UseSSE42Intrinsics)
this can be easily replaced by:
(!Matcher::match_rule_supported(Op_StrIndexOf))
where the check for UseSSE42Intrinsics is moved into the
arch-dependent match_rule_supported() function in the .ad files
- afterwards the flag can be moved from globals.hpp to globals_x86.hpp
- and deleted from vm_version_aarch64.cpp (I've checked that
match_rule_supported() does 'the right thing on aarch64)
- I'll put all this in my change for "8145336: PPC64: fix string
intrinsics after CompactStrings change" [1]
2. UseSSE
- this is a little more complicated because it is more widely used in
shared code
- I'd suggest to also move the option from globals.hpp to globals_x86.hpp
- and clean up the shared code usages (most of it may be done by using
already existing flags like
Matcher::strict_fp_requires_explicit_rounding. Maybe we'll have to
introduce more (but not expose them as command line option))
- because this is a bigger change I've opened "8145665: Make UseSSE an
x86-specific option and cleanup its usage in shared code" [2] for it.
@Andrew&Andrew: I've noticed that you don't set UseSSE on aarch64
which means you are using the default value '99'. On sparc and ppc64
we set UseSSE to zero. Maybe you want to do that as well on aarch64
until 8145665 will be resolved?
Regards,
Volker
[1] https://bugs.openjdk.java.net/browse/JDK-8145336
[2] https://bugs.openjdk.java.net/browse/JDK-8145665
On Tue, Dec 15, 2015 at 11:28 AM, Andrew Haley <aph at redhat.com> wrote:
> On 30/11/15 18:54, Volker Simonis wrote:
>> Moreover, "UseSSE42Intrinsics" is clearly a architecture-dependant
>> option. I already wondered that according to vm_version_aarch64.cpp it
>> seems to exists on aarch64 (is this really true Andrew?). But it's
>> surely not available on PowerPC, SPARC, ...
>
> Sure it is. The flag is just oddly-named, that's all: it means
> "InlineStringIndexOf". I have no idea why a name like
> UseSSE42Intrinsics ever made its way into the shared code.
>
> Andrew.
More information about the hotspot-compiler-dev
mailing list