Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8329753

Obsolete UseNeon

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 23
    • hotspot
    • None
    • behavioral
    • minimal
    • The flag currently has no effect => minimal risk
    • add/remove/modify command line option
    • JDK

      Summary

      Obsolete the no longer used flag UseNeon and also schedule its expiration.

      Problem

      The flag UseNeon has no effect as of JDK-8328264 in JDK 23.

      Solution

      Obsolete UseNeon in JDK 23 and expire it in JDK 24.

      Specification

      diff --git a/src/hotspot/cpu/aarch64/globals_aarch64.hpp b/src/hotspot/cpu/aarch64/globals_aarch64.hpp
      index 760aada0270..2f83838fc0f 100644
      --- a/src/hotspot/cpu/aarch64/globals_aarch64.hpp
      +++ b/src/hotspot/cpu/aarch64/globals_aarch64.hpp
      @@ -85,8 +85,6 @@ define_pd_global(intx, InlineSmallCode, 1000);
                                                                               \
         product(bool, NearCpool, true, \
                "constant pool is close to instructions") \
      - product(bool, UseNeon, false, \
      - "Use Neon for CRC32 computation") \
         product(bool, UseCRC32, false, \
                 "Use CRC32 instructions for CRC32 computation") \
         product(bool, UseCryptoPmullForCRC32, false, \
      diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
      index ecd3f00cbeb..8ccd466d109 100644
      --- a/src/hotspot/share/runtime/arguments.cpp
      +++ b/src/hotspot/share/runtime/arguments.cpp
      @@ -537,6 +537,7 @@ static SpecialFlag const special_jvm_flags[] = {
      
         { "ParallelOldDeadWoodLimiterMean", JDK_Version::undefined(), JDK_Version::jdk(23), JDK_Version::jdk(24) },
         { "ParallelOldDeadWoodLimiterStdDev", JDK_Version::undefined(), JDK_Version::jdk(23), JDK_Version::jdk(24) },
      + { "UseNeon", JDK_Version::undefined(), JDK_Version::jdk(23), JDK_Version::jdk(24) },
       #ifdef ASSERT
         { "DummyObsoleteTestFlag", JDK_Version::undefined(), JDK_Version::jdk(18), JDK_Version::undefined() },
       #endif
      diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java
      index 9d7d4748fdd..890a3357678 100644
      --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java
      +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java
      @@ -1,5 +1,5 @@
       /*
      - * Copyright (c) 2015, 2021, Oracle and/or its affiliates. All rights reserved.
      + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
        * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
        *
        * This code is free software; you can redistribute it and/or modify it
      @@ -58,9 +58,6 @@ private static EnumSet<AArch64.Flag> computeFlags(AArch64HotSpotVMConfig config)
               if (config.useCRC32) {
                   flags.add(AArch64.Flag.UseCRC32);
               }
      - if (config.useNeon) {
      - flags.add(AArch64.Flag.UseNeon);
      - }
               if (config.useSIMDForMemoryOps) {
                   flags.add(AArch64.Flag.UseSIMDForMemoryOps);
               }
      diff --git a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java
      index 720bebb30cf..a388687c69a 100644
      --- a/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java
      +++ b/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotVMConfig.java
      @@ -1,5 +1,5 @@
       /*
      - * Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
      + * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
        * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
        *
        * This code is free software; you can redistribute it and/or modify it
      @@ -44,7 +44,6 @@ class AArch64HotSpotVMConfig extends HotSpotVMConfigAccess {
            * These flags are set based on the corresponding command line flags.
            */
           final boolean useCRC32 = getFlag("UseCRC32", Boolean.class);
      - final boolean useNeon = getFlag("UseNeon", Boolean.class);
           final boolean useSIMDForMemoryOps = getFlag("UseSIMDForMemoryOps", Boolean.class);
           final boolean avoidUnalignedAccesses = getFlag("AvoidUnalignedAccesses", Boolean.class);
           final boolean useLSE = getFlag("UseLSE", Boolean.class);

      Full PR for reference: https://github.com/openjdk/jdk/pull/18648

            thartmann Tobias Hartmann
            thartmann Tobias Hartmann
            Christian Hagedorn, Vladimir Kozlov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: