8350457: Implement JEP 519: Compact Object Headers

Reviewed-by: mdoerr, coleenp, zgu
This commit is contained in:
Roman Kennke 2025-05-22 10:48:50 +00:00
parent 26053fe783
commit 1e57648abd
25 changed files with 70 additions and 83 deletions

View File

@ -254,7 +254,6 @@ var getJibProfilesCommon = function (input, data) {
configure_args: concat( configure_args: concat(
"--with-exclude-translations=es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK", "--with-exclude-translations=es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
"--disable-jvm-feature-shenandoahgc", "--disable-jvm-feature-shenandoahgc",
"--disable-cds-archive-coh",
versionArgs(input, common)) versionArgs(input, common))
}; };

View File

@ -128,7 +128,7 @@ const size_t minimumSymbolTableSize = 1024;
"(Deprecated) Use 32-bit class pointers in 64-bit VM. " \ "(Deprecated) Use 32-bit class pointers in 64-bit VM. " \
"lp64_product means flag is always constant in 32 bit VM") \ "lp64_product means flag is always constant in 32 bit VM") \
\ \
product(bool, UseCompactObjectHeaders, false, EXPERIMENTAL, \ product(bool, UseCompactObjectHeaders, false, \
"Use compact 64-bit object headers in 64-bit VM") \ "Use compact 64-bit object headers in 64-bit VM") \
\ \
product(int, ObjectAlignmentInBytes, 8, \ product(int, ObjectAlignmentInBytes, 8, \

View File

@ -29,7 +29,7 @@
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:TypeProfileLevel=020 * @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:TypeProfileLevel=020
* compiler.arraycopy.TestArrayCopyNoInit * compiler.arraycopy.TestArrayCopyNoInit
* @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:TypeProfileLevel=020 * @run main/othervm -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:TypeProfileLevel=020
* -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders -XX:-UseTLAB * -XX:+UseCompactObjectHeaders -XX:-UseTLAB
* compiler.arraycopy.TestArrayCopyNoInit * compiler.arraycopy.TestArrayCopyNoInit
*/ */

View File

@ -45,16 +45,16 @@ public class TestCastX2NotProcessedIGVN {
public static void main(String[] args) { public static void main(String[] args) {
// Cross-product: +-AlignVector and +-UseCompactObjectHeaders // Cross-product: +-AlignVector and +-UseCompactObjectHeaders
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
} }

View File

@ -45,13 +45,13 @@ public class TestVectorConditionalMove {
public static void main(String[] args) { public static void main(String[] args) {
// Cross-product: +-AlignVector and +-UseCompactObjectHeaders // Cross-product: +-AlignVector and +-UseCompactObjectHeaders
TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov", TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector");
TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov", TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector");
TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov", TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector");
TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov", TestFramework.runWithFlags("-XX:+UseCMoveUnconditionally", "-XX:+UseVectorCmov",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector");
} }
// Compare 2 values, and pick one of them // Compare 2 values, and pick one of them

View File

@ -52,16 +52,16 @@ public class TestVectorizationMismatchedAccess {
public static void main(String[] args) { public static void main(String[] args) {
// Cross-product: +-AlignVector and +-UseCompactObjectHeaders // Cross-product: +-AlignVector and +-UseCompactObjectHeaders
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
} }

View File

@ -43,16 +43,16 @@ public class TestVectorizationNotRun {
public static void main(String[] args) { public static void main(String[] args) {
// Cross-product: +-AlignVector and +-UseCompactObjectHeaders // Cross-product: +-AlignVector and +-UseCompactObjectHeaders
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:-AlignVector"); "-XX:-AlignVector");
TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", TestFramework.runWithFlags("--add-modules", "java.base", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED",
"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+UseCompactObjectHeaders",
"-XX:+AlignVector"); "-XX:+AlignVector");
} }

View File

@ -114,11 +114,11 @@ public class TestAlignVector {
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=250"); "-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=250");
switch (args[0]) { switch (args[0]) {
case "NoAlignVector" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "NoAlignVector" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "AlignVector" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "AlignVector" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "VerifyAlignVector" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector", "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyAlignVector"); } case "VerifyAlignVector" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector", "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyAlignVector"); }
case "NoAlignVector-COH" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "NoAlignVector-COH" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "VerifyAlignVector-COH" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector", "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyAlignVector"); } case "VerifyAlignVector-COH" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector", "-XX:+IgnoreUnrecognizedVMOptions", "-XX:+VerifyAlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
} }
framework.start(); framework.start();

View File

@ -82,10 +82,10 @@ public class TestIndependentPacksWithCyclicDependency {
"-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::init", "-XX:CompileCommand=compileonly,compiler.loopopts.superword.TestIndependentPacksWithCyclicDependency::init",
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000"); "-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
switch (args[0]) { switch (args[0]) {
case "nCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "nCOH_nAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "nCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "nCOH_yAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "yCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "yCOH_nAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "yCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); } case "yCOH_yAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
framework.start(); framework.start();

View File

@ -77,10 +77,10 @@ public class TestMulAddS2I {
public static void main(String[] args) { public static void main(String[] args) {
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector", "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaers"); TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector", "-XX:-UseCompactObjectHeaers");
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector", "-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaers"); TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector", "-XX:-UseCompactObjectHeaers");
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaers"); TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:-AlignVector", "-XX:+UseCompactObjectHeaers");
TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaers"); TestFramework.runWithFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AlignVector", "-XX:+UseCompactObjectHeaers");
} }
@Run(test = {"testa", "testb", "testc", "testd", "teste", "testf", "testg", "testh", @Run(test = {"testa", "testb", "testc", "testd", "teste", "testf", "testg", "testh",

View File

@ -61,10 +61,10 @@ public class TestScheduleReordersScalarMemops {
"-XX:-TieredCompilation", "-Xbatch", "-XX:-TieredCompilation", "-Xbatch",
"-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000"); "-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
switch (args[0]) { switch (args[0]) {
case "nCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "nCOH_nAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "nCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "nCOH_yAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "yCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "yCOH_nAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "yCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); } case "yCOH_yAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
framework.start(); framework.start();

View File

@ -76,10 +76,10 @@ public class TestSplitPacks {
TestFramework framework = new TestFramework(TestSplitPacks.class); TestFramework framework = new TestFramework(TestSplitPacks.class);
framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000"); framework.addFlags("-XX:+IgnoreUnrecognizedVMOptions", "-XX:LoopUnrollLimit=1000");
switch (args[0]) { switch (args[0]) {
case "nCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "nCOH_nAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "nCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "nCOH_yAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "yCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "yCOH_nAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "yCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); } case "yCOH_yAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
framework.start(); framework.start();

View File

@ -39,10 +39,10 @@ public class TestUnorderedReductionPartialVectorization {
static final int ITER = 10; static final int ITER = 10;
public static void main(String[] args) { public static void main(String[] args) {
TestFramework.runWithFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); TestFramework.runWithFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector");
TestFramework.runWithFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); TestFramework.runWithFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector");
TestFramework.runWithFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); TestFramework.runWithFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector");
TestFramework.runWithFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); TestFramework.runWithFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector");
} }
@Run(test = {"test1"}) @Run(test = {"test1"})

View File

@ -50,10 +50,10 @@ public class TestFloatConversionsVector {
TestFramework framework = new TestFramework(TestFloatConversionsVector.class); TestFramework framework = new TestFramework(TestFloatConversionsVector.class);
framework.addFlags("-XX:-TieredCompilation", "-XX:CompileThresholdScaling=0.3"); framework.addFlags("-XX:-TieredCompilation", "-XX:CompileThresholdScaling=0.3");
switch (args[0]) { switch (args[0]) {
case "nCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "nCOH_nAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "nCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "nCOH_yAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "yCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "yCOH_nAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "yCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); } case "yCOH_yAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
framework.start(); framework.start();

View File

@ -53,10 +53,10 @@ public class TestFloatConversionsVectorNaN {
TestFramework framework = new TestFramework(TestFloatConversionsVectorNaN.class); TestFramework framework = new TestFramework(TestFloatConversionsVectorNaN.class);
framework.addFlags("-XX:-TieredCompilation", "-XX:CompileThresholdScaling=0.3"); framework.addFlags("-XX:-TieredCompilation", "-XX:CompileThresholdScaling=0.3");
switch (args[0]) { switch (args[0]) {
case "nCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); } case "nCOH_nAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "nCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); } case "nCOH_yAV" -> { framework.addFlags("-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"); }
case "yCOH_nAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); } case "yCOH_nAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"); }
case "yCOH_yAV" -> { framework.addFlags("-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); } case "yCOH_yAV" -> { framework.addFlags("-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"); }
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
framework.start(); framework.start();

View File

@ -69,10 +69,10 @@ public class ArrayTypeConvertTest extends VectorizationTestRunner {
@Override @Override
protected String[] testVMFlags(String[] args) { protected String[] testVMFlags(String[] args) {
return switch (args[0]) { return switch (args[0]) {
case "nCOH_nAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"}; case "nCOH_nAV" -> new String[]{"-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"};
case "nCOH_yAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"}; case "nCOH_yAV" -> new String[]{"-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"};
case "yCOH_nAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"}; case "yCOH_nAV" -> new String[]{"-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"};
case "yCOH_yAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"}; case "yCOH_yAV" -> new String[]{"-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"};
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
} }

View File

@ -67,10 +67,10 @@ public class LoopCombinedOpTest extends VectorizationTestRunner {
@Override @Override
protected String[] testVMFlags(String[] args) { protected String[] testVMFlags(String[] args) {
return switch (args[0]) { return switch (args[0]) {
case "nCOH_nAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"}; case "nCOH_nAV" -> new String[]{"-XX:-UseCompactObjectHeaders", "-XX:-AlignVector"};
case "nCOH_yAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"}; case "nCOH_yAV" -> new String[]{"-XX:-UseCompactObjectHeaders", "-XX:+AlignVector"};
case "yCOH_nAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"}; case "yCOH_nAV" -> new String[]{"-XX:+UseCompactObjectHeaders", "-XX:-AlignVector"};
case "yCOH_yAV" -> new String[]{"-XX:+UnlockExperimentalVMOptions", "-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"}; case "yCOH_yAV" -> new String[]{"-XX:+UseCompactObjectHeaders", "-XX:+AlignVector"};
default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); } default -> { throw new RuntimeException("Test argument not recognized: " + args[0]); }
}; };
} }

View File

@ -35,7 +35,7 @@
* @library /test/lib * @library /test/lib
* @modules java.base/jdk.internal.misc * @modules java.base/jdk.internal.misc
* java.xml * java.xml
* @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:+UnlockExperimentalVMOptions -XX:-UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=128m * @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:-UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=128m
*/ */
/* @test id=ccp_off /* @test id=ccp_off
@ -49,12 +49,12 @@
* @library /test/lib * @library /test/lib
* @modules java.base/jdk.internal.misc * @modules java.base/jdk.internal.misc
* java.xml * java.xml
* @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=128m * @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:+UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=128m
*/ */
/* @test id=use-zero-based-encoding-coh-large-class-space /* @test id=use-zero-based-encoding-coh-large-class-space
* @library /test/lib * @library /test/lib
* @modules java.base/jdk.internal.misc * @modules java.base/jdk.internal.misc
* java.xml * java.xml
* @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=4g * @run main/native GTestWrapper --gtest_filter=CompressedKlass* -XX:+UseCompactObjectHeaders -Xlog:metaspace* -Xmx6g -Xms128m -Xshare:off -XX:CompressedClassSpaceSize=4g
*/ */

View File

@ -58,5 +58,5 @@
* @requires vm.bits == 64 * @requires vm.bits == 64
* @requires vm.flagless * @requires vm.flagless
* @requires vm.debug * @requires vm.debug
* @run main/native GTestWrapper --gtest_filter=metaspace* -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders * @run main/native GTestWrapper --gtest_filter=metaspace* -XX:+UseCompactObjectHeaders
*/ */

View File

@ -56,7 +56,7 @@ public class CompressedCPUSpecificClassSpaceReservation {
"-Xshare:" + (CDS ? "on" : "off"), "-Xshare:" + (CDS ? "on" : "off"),
"-Xmx128m", "-Xmx128m",
"-XX:CompressedClassSpaceSize=128m", "-XX:CompressedClassSpaceSize=128m",
"-XX:+UnlockExperimentalVMOptions", "-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"-Xlog:metaspace*", "-Xlog:metaspace+map=trace", "-Xlog:os+map=trace", "-Xlog:metaspace*", "-Xlog:metaspace+map=trace", "-Xlog:os+map=trace",
"-XX:+SimulateFullAddressSpace", // So that no resevation attempt will succeed "-XX:+SimulateFullAddressSpace", // So that no resevation attempt will succeed
"-version"); "-version");

View File

@ -99,7 +99,6 @@ public class AccessZeroNKlassHitsProtectionZone {
args.add("-Xlog:metaspace*"); args.add("-Xlog:metaspace*");
args.add("-Xlog:cds"); args.add("-Xlog:cds");
if (COH) { if (COH) {
args.add("-XX:+UnlockExperimentalVMOptions");
args.add("-XX:+UseCompactObjectHeaders"); args.add("-XX:+UseCompactObjectHeaders");
} }
if (CDS) { if (CDS) {

View File

@ -29,7 +29,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=no-coops-with-ccp * @test id=no-coops-with-ccp
@ -39,7 +39,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:-UseCompressedOops -XX:+UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=with-coops-no-ccp * @test id=with-coops-no-ccp
@ -49,7 +49,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+UseCompressedOops -XX:-UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseCompressedOops -XX:-UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=no-coops-no-ccp * @test id=no-coops-no-ccp
@ -59,7 +59,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:-UseCompressedOops -XX:-UseCompressedClassPointers -XX:-UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=with-coop--with-coh * @test id=with-coop--with-coh
@ -69,7 +69,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+UseCompressedOops -XX:+UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UseCompressedOops -XX:+UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=no-coops-with-coh * @test id=no-coops-with-coh
@ -79,7 +79,7 @@
* java.management * java.management
* @build jdk.test.whitebox.WhiteBox * @build jdk.test.whitebox.WhiteBox
* @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox * @run driver jdk.test.lib.helpers.ClassFileInstaller jdk.test.whitebox.WhiteBox
* @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:-UseCompressedOops -XX:+UseCompactObjectHeaders BaseOffsets * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:-UseCompressedOops -XX:+UseCompactObjectHeaders BaseOffsets
*/ */
/* /*
* @test id=32bit * @test id=32bit

View File

@ -132,7 +132,6 @@ public class TestDefaultArchiveLoading {
} }
ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder( ProcessBuilder pb = ProcessTools.createLimitedTestJavaProcessBuilder(
"-XX:+UnlockExperimentalVMOptions",
"-XX:" + coh + "UseCompactObjectHeaders", "-XX:" + coh + "UseCompactObjectHeaders",
"-XX:" + coops + "UseCompressedOops", "-XX:" + coops + "UseCompressedOops",
"-Xlog:cds", "-Xlog:cds",

View File

@ -49,7 +49,6 @@ public class TestZGCWithCDS {
.dump(helloJar, .dump(helloJar,
new String[] {"Hello"}, new String[] {"Hello"},
"-XX:+UseZGC", "-XX:+UseZGC",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds"); "-Xlog:cds");
out.shouldContain("Dumping shared data to file:"); out.shouldContain("Dumping shared data to file:");
@ -59,7 +58,6 @@ public class TestZGCWithCDS {
out = TestCommon out = TestCommon
.exec(helloJar, .exec(helloJar,
"-XX:+UseZGC", "-XX:+UseZGC",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -72,7 +70,6 @@ public class TestZGCWithCDS {
"-XX:-UseZGC", "-XX:-UseZGC",
"-XX:+UseCompressedOops", // in case turned off by vmoptions "-XX:+UseCompressedOops", // in case turned off by vmoptions
"-XX:+UseCompressedClassPointers", // by jtreg "-XX:+UseCompressedClassPointers", // by jtreg
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -86,7 +83,6 @@ public class TestZGCWithCDS {
"-XX:+UseSerialGC", "-XX:+UseSerialGC",
"-XX:-UseCompressedOops", "-XX:-UseCompressedOops",
"-XX:-UseCompressedClassPointers", "-XX:-UseCompressedClassPointers",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -100,7 +96,6 @@ public class TestZGCWithCDS {
"-XX:+UseSerialGC", "-XX:+UseSerialGC",
"-XX:-UseCompressedOops", "-XX:-UseCompressedOops",
"-XX:+UseCompressedClassPointers", "-XX:+UseCompressedClassPointers",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -113,7 +108,6 @@ public class TestZGCWithCDS {
"-XX:+UseSerialGC", "-XX:+UseSerialGC",
"-XX:+UseCompressedOops", "-XX:+UseCompressedOops",
"-XX:-UseCompressedClassPointers", "-XX:-UseCompressedClassPointers",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -127,7 +121,6 @@ public class TestZGCWithCDS {
"-XX:+UseSerialGC", "-XX:+UseSerialGC",
"-XX:+UseCompressedOops", "-XX:+UseCompressedOops",
"-XX:+UseCompressedClassPointers", "-XX:+UseCompressedClassPointers",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");
@ -142,7 +135,6 @@ public class TestZGCWithCDS {
"-XX:+UseSerialGC", "-XX:+UseSerialGC",
"-XX:-UseCompressedOops", "-XX:-UseCompressedOops",
"-XX:+UseCompressedClassPointers", "-XX:+UseCompressedClassPointers",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds"); "-Xlog:cds");
out.shouldContain("Dumping shared data to file:"); out.shouldContain("Dumping shared data to file:");
@ -152,7 +144,6 @@ public class TestZGCWithCDS {
out = TestCommon out = TestCommon
.exec(helloJar, .exec(helloJar,
"-XX:+UseZGC", "-XX:+UseZGC",
"-XX:+UnlockExperimentalVMOptions",
compactHeaders, compactHeaders,
"-Xlog:cds", "-Xlog:cds",
"Hello"); "Hello");

View File

@ -122,7 +122,6 @@ public class JNIMonitor {
// We only count monitors in LM_LEGACY mode // We only count monitors in LM_LEGACY mode
"-XX:LockingMode=1", "-XX:LockingMode=1",
// Disable compact headers since that switches locking mode to LM_LIGHTWEIGHT // Disable compact headers since that switches locking mode to LM_LIGHTWEIGHT
"-XX:+UnlockExperimentalVMOptions",
"-XX:-UseCompactObjectHeaders", "-XX:-UseCompactObjectHeaders",
"JNIMonitor$" + test, "JNIMonitor$" + test,
}; };