Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Automatic merge of jdk:master into master
  • Loading branch information
duke committed Mar 13, 2021
2 parents 656404e + 86e4c75 commit c582a9cc985ddd6e1d5d832c9df68ff9487b0ba0
Showing with 1,491 additions and 961 deletions.
  1. +2 −11 src/hotspot/cpu/aarch64/aarch64_sve.ad
  2. +23 −30 src/hotspot/cpu/aarch64/aarch64_sve_ad.m4
  3. +1 −3 src/hotspot/share/adlc/formssel.cpp
  4. +2 −1 src/hotspot/share/code/location.cpp
  5. +2 −0 src/hotspot/share/code/nmethod.cpp
  6. +1 −1 src/hotspot/share/interpreter/linkResolver.cpp
  7. +17 −18 src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp
  8. +2 −3 src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp
  9. +17 −6 src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.cpp
  10. +5 −5 src/hotspot/share/jfr/periodic/jfrNetworkUtilization.cpp
  11. +1 −2 src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp
  12. +5 −4 src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp
  13. +57 −24 src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp
  14. +9 −5 src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp
  15. +2 −11 src/hotspot/share/jfr/support/jfrAllocationTracer.cpp
  16. +1 −5 src/hotspot/share/jfr/support/jfrAllocationTracer.hpp
  17. +1 −1 src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
  18. +1 −1 src/hotspot/share/jvmci/jvmciJavaClasses.cpp
  19. +18 −18 src/hotspot/share/opto/loopnode.hpp
  20. +19 −8 src/hotspot/share/prims/vectorSupport.cpp
  21. +27 −15 src/hotspot/share/runtime/deoptimization.cpp
  22. +55 −30 src/hotspot/share/runtime/handshake.cpp
  23. +2 −0 src/hotspot/share/runtime/handshake.hpp
  24. +5 −2 src/hotspot/share/runtime/stackValue.cpp
  25. +3 −2 src/hotspot/share/utilities/globalCounter.hpp
  26. +1 −4 src/hotspot/share/utilities/globalDefinitions.cpp
  27. +0 −1 src/hotspot/share/utilities/globalDefinitions.hpp
  28. +1 −1 src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java
  29. +5 −5 src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java
  30. +114 −3 src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Command.java
  31. +3 −1 src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Main.java
  32. +137 −14 src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Metadata.java
  33. +1 −108 src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Print.java
  34. +8 −15 test/hotspot/jtreg/compiler/oracle/TestInvalidCompileCommand.java
  35. +2 −1 test/hotspot/jtreg/runtime/BadObjectClass/BootstrapRedefine.java
  36. +3 −2 test/hotspot/jtreg/runtime/BadObjectClass/TestUnloadClassError.java
  37. +2 −1 test/hotspot/jtreg/runtime/ClassFile/PreviewVersion.java
  38. +3 −3 test/hotspot/jtreg/runtime/ClassUnload/ConstantPoolDependsTest.java
  39. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/DictionaryDependsTest.java
  40. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/KeepAliveClass.java
  41. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/KeepAliveClassLoader.java
  42. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/KeepAliveObject.java
  43. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/KeepAliveSoftReference.java
  44. +3 −17 test/hotspot/jtreg/runtime/ClassUnload/MyDiffClassLoader.java
  45. +4 −2 test/hotspot/jtreg/runtime/ClassUnload/SuperDependsTest.java
  46. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/UnloadInterfaceTest.java
  47. +3 −2 test/hotspot/jtreg/runtime/ClassUnload/UnloadTest.java
  48. +2 −10 test/hotspot/jtreg/runtime/DefineClass/NullClassBytesTest.java
  49. +3 −2 test/hotspot/jtreg/runtime/MemberName/MemberNameLeak.java
  50. +3 −1 test/hotspot/jtreg/runtime/Nestmates/membership/TestNestHostErrorWithClassUnload.java
  51. +2 −1 test/hotspot/jtreg/runtime/cds/BootAppendTests.java
  52. +2 −1 test/hotspot/jtreg/runtime/cds/SharedStrings.java
  53. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/ArchiveRelocationTest.java
  54. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/BootClassPathMismatch.java
  55. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/CDSandJFR.java
  56. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/DumpClassList.java
  57. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/FieldLayoutFlags.java
  58. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/JarBuilder.java
  59. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/PackageSealing.java
  60. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/SharedRegionAlignmentTest.java
  61. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/WrongClasspath.java
  62. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedIntegerCacheTest.java
  63. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleComboTest.java
  64. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleCompareTest.java
  65. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/ArchivedModuleWithCustomImageTest.java
  66. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedMirrorTest.java
  67. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/CheckCachedResolvedReferences.java
  68. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/GCStressTest.java
  69. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/MirrorWithReferenceFieldsTest.java
  70. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/PrimitiveTypesTest.java
  71. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/cacheObject/RedefineClassTest.java
  72. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/condy/CondyHelloTest.java
  73. +8 −4 test/hotspot/jtreg/runtime/cds/appcds/customLoader/HelloCustom.java
  74. +7 −4 test/hotspot/jtreg/runtime/cds/appcds/customLoader/HelloCustom_JFR.java
  75. +12 −10 test/hotspot/jtreg/runtime/cds/appcds/customLoader/UnloadUnregisteredLoaderTest.java
  76. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java
  77. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/UnloadUnregisteredLoader.java
  78. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java
  79. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchivedSuperIf.java
  80. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArrayKlasses.java
  81. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/BasicLambdaTest.java
  82. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ClassResolutionFailure.java
  83. +3 −22 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveRelocationTest.java
  84. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java
  85. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java
  86. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ExcludedClasses.java
  87. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamic.java
  88. +7 −3 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java
  89. +7 −3 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustomUnload.java
  90. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/JITInteraction.java
  91. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java
  92. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaForClassInBaseArchive.java
  93. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaInBaseArchive.java
  94. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyCallerIsHidden.java
  95. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaProxyDuringShutdown.java
  96. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LinkClassTest.java
  97. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MethodSorting.java
  98. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MismatchedBaseArchive.java
  99. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/MissingArchive.java
  100. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NestTest.java
  101. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/NoClassToArchive.java
  102. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ParallelLambdaLoadTest.java
  103. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PredicateTest.java
  104. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java
  105. +2 −0 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/SharedArchiveFileOption.java
  106. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/SharedBaseAddressOption.java
  107. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/StaticInnerTest.java
  108. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsafeAndLambda.java
  109. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UnsafeAnonymous.java
  110. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/UsedAllArchivedLambdas.java
  111. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/WrongTopClasspath.java
  112. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/AnonVmClassesDuringDump.java
  113. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/ExceptionDuringDumpAtObjectsInitPhase.java
  114. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCDuringDump.java
  115. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/GCSharedStringsDuringDump.java
  116. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/HumongousDuringDump.java
  117. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/javaldr/LockDuringDump.java
  118. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/CheckUnsupportedDumpingOptions.java
  119. +3 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/JigsawOptionsCombo.java
  120. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/AppClassInCP.java
  121. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/CustomPackage.java
  122. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/MismatchedPatchModule.java
  123. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/PatchDir.java
  124. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/PatchJavaBase.java
  125. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/Simple.java
  126. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/SubClassOfPatchedClass.java
  127. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/PatchModule/TwoJars.java
  128. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jigsaw/RedefineClassesInModuleGraph.java
  129. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/jvmti/ClassFileLoadHookTest.java
  130. +1 −0 test/hotspot/jtreg/runtime/cds/appcds/jvmti/InstrumentationTest.java
  131. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/jvmti/dumpingWithAgent/DumpingWithJavaAgent.java
  132. +4 −1 test/hotspot/jtreg/runtime/cds/appcds/jvmti/parallelLoad/ParallelLoadAndTransformTest.java
  133. +2 −1 ...hotspot/jtreg/runtime/cds/appcds/jvmti/transformRelatedClasses/TransformRelatedClassesAppCDS.java
  134. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java
  135. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/LoaderConstraintsTest.java
  136. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineBasicTest.java
  137. +2 −1 test/hotspot/jtreg/runtime/cds/appcds/redefineClass/RedefineRunningMethods_Shared.java
  138. +2 −1 test/hotspot/jtreg/runtime/cds/serviceability/ReplaceCriticalClasses.java
  139. +2 −1 test/hotspot/jtreg/runtime/cds/serviceability/transformRelatedClasses/TransformRelatedClasses.java
  140. +3 −2 test/hotspot/jtreg/runtime/defineAnonClass/TestAnonSymbolLeak.java
  141. +2 −1 test/hotspot/jtreg/runtime/getSysPackage/GetPackageXbootclasspath.java
  142. +2 −1 test/hotspot/jtreg/runtime/getSysPackage/GetSysPkgTest.java
  143. +91 −0 test/hotspot/jtreg/runtime/handshake/HandshakeTimeoutTest.java
  144. +4 −2 test/hotspot/jtreg/runtime/logging/ClassLoadUnloadTest.java
  145. +4 −2 test/hotspot/jtreg/runtime/logging/LoaderConstraintsTest.java
  146. +4 −20 test/hotspot/jtreg/runtime/logging/loadLibraryTest/LoadLibraryTest.java
  147. +2 −1 test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_Umod.java
  148. +2 −1 test/hotspot/jtreg/runtime/modules/AccessCheck/UmodDiffCL_UmodUpkg.java
  149. +2 −1 test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkgDiffCL_Umod.java
  150. +2 −1 test/hotspot/jtreg/runtime/modules/AccessCheck/UmodUpkg_Umod.java
  151. +2 −1 test/hotspot/jtreg/runtime/modules/AccessCheck/Umod_UmodUpkg.java
  152. +3 −17 test/hotspot/jtreg/runtime/modules/AccessCheck/myloaders/MyDiffClassLoader.java
  153. +3 −17 test/hotspot/jtreg/runtime/modules/AccessCheck/myloaders/MySameClassLoader.java
  154. +5 −19 test/hotspot/jtreg/runtime/modules/CCE_module_msg.java
  155. +2 −1 test/hotspot/jtreg/runtime/modules/ModuleStress/ModuleStress.java
  156. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModule2Dirs.java
  157. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleCDS.java
  158. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleClassList.java
  159. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleJavaBase.java
  160. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTest.java
  161. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTestJar.java
  162. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTestJarDir.java
  163. +2 −1 test/hotspot/jtreg/runtime/modules/PatchModule/PatchModuleTraceCL.java
  164. +2 −1 test/hotspot/jtreg/runtime/modules/Visibility/PatchModuleVisibility.java
  165. +2 −1 test/hotspot/jtreg/runtime/modules/Visibility/XbootcpNoVisibility.java
  166. +2 −1 test/hotspot/jtreg/runtime/modules/Visibility/XbootcpVisibility.java
  167. +1 −0 test/hotspot/jtreg/runtime/records/RedefineRecord.java
  168. +1 −0 test/hotspot/jtreg/runtime/sealedClasses/RedefinePermittedSubclass.java
  169. +1 −0 test/hotspot/jtreg/runtime/sealedClasses/RedefineSealedClass.java
  170. +2 −1 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/ModifyAnonymous.java
  171. +2 −1 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineAnnotations.java
  172. +2 −1 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineLeak.java
  173. +2 −1 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineObject.java
  174. +2 −2 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RetransformClassesZeroLength.java
  175. +2 −2 test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/TransformerDeadlockTest.java
  176. +4 −4 test/hotspot/jtreg/serviceability/sa/ClhsdbCDSJstackPrintAll.java
  177. +2 −2 test/hotspot/jtreg/serviceability/sa/ClhsdbDumpheap.java
  178. +8 −8 test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java
  179. +3 −4 test/hotspot/jtreg/serviceability/sa/ClhsdbJdis.java
  180. +2 −2 test/hotspot/jtreg/serviceability/sa/ClhsdbJstack.java
  181. +3 −3 test/hotspot/jtreg/serviceability/sa/ClhsdbPrintAs.java
  182. +2 −2 test/hotspot/jtreg/serviceability/sa/ClhsdbSource.java
  183. +3 −3 test/hotspot/jtreg/serviceability/sa/ClhsdbWhere.java
  184. +0 −35 test/hotspot/jtreg/serviceability/sa/LingeredAppWithTrivialMain.java
  185. +1 −2 test/hotspot/jtreg/serviceability/sa/TestPrintMdo.java
  186. +0 −1 test/jdk/ProblemList.txt
  187. +4 −1 test/jdk/java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java
  188. +2 −1 test/jdk/java/security/AccessController/DoPrivAccompliceTest.java
  189. +2 −2 test/jdk/jdk/incubator/vector/Vector64ConversionTests.java
  190. +2 −1 test/jdk/jdk/internal/loader/URLClassPath/JarClassPathFileEntry.java
  191. +108 −7 test/jdk/jdk/jfr/tool/TestMetadata.java
  192. +2 −2 test/jdk/sun/tools/jhsdb/HeapDumpTest.java
  193. +6 −231 test/lib/ClassFileInstaller.java
  194. +2 −1 test/lib/RedefineClassHelper.java
  195. +49 −8 test/lib/jdk/test/lib/apps/LingeredApp.java
  196. +7 −13 test/{hotspot/jtreg/runtime/testlibrary → lib/jdk/test/lib/classloader}/ClassUnloadCommon.java
  197. +3 −1 ...ot/jtreg/runtime/testlibrary → lib/jdk/test/lib/classloader}/ClassWithManyMethodsClassLoader.java
  198. +292 −0 test/lib/jdk/test/lib/helpers/ClassFileInstaller.java
@@ -1,6 +1,6 @@
//
// Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, Arm Limited. All rights reserved.
// Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2021, Arm Limited. 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
@@ -52,7 +52,6 @@ operand vmemA_immLOffset4()
interface(CONST_INTER);
%}


operand vmemA_indOffI4(iRegP reg, vmemA_immIOffset4 off)
%{
constraint(ALLOC_IN_RC(ptr_reg));
@@ -88,7 +87,6 @@ source_hpp %{
%}

source %{

static inline BasicType vector_element_basic_type(const MachNode* n) {
const TypeVect* vt = n->bottom_type()->is_vect();
return vt->element_basic_type();
@@ -210,16 +208,13 @@ source %{
return true;
}
}

%}

definitions %{
int_def SVE_COST (200, 200);
%}




// All SVE instructions

// vector load/store
@@ -253,7 +248,6 @@ instruct storeV(vReg src, vmemA mem) %{
ins_pipe(pipe_slow);
%}


// vector abs

instruct vabsB(vReg dst, vReg src) %{
@@ -1120,7 +1114,6 @@ instruct replicateL(vReg dst, iRegL src) %{
ins_pipe(pipe_slow);
%}


instruct replicateB_imm8(vReg dst, immI8 con) %{
predicate(UseSVE > 0 && n->as_Vector()->length() >= 16);
match(Set dst (ReplicateB con));
@@ -1165,7 +1158,6 @@ instruct replicateL_imm8(vReg dst, immL8_shift8 con) %{
ins_pipe(pipe_slow);
%}


instruct replicateF(vReg dst, vRegF src) %{
predicate(UseSVE > 0 && n->as_Vector()->length() >= 4);
match(Set dst (ReplicateF src));
@@ -1708,4 +1700,3 @@ instruct vsubD(vReg dst, vReg src1, vReg src2) %{
%}
ins_pipe(pipe_slow);
%}

@@ -1,6 +1,6 @@
//
// Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, Arm Limited. All rights reserved.
// Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
// Copyright (c) 2020, 2021, Arm Limited. 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
@@ -29,6 +29,8 @@ dnl

// AArch64 SVE Architecture Description File


// 4 bit signed offset -- for predicated load/store
dnl
dnl OPERAND_VMEMORYA_IMMEDIATE_OFFSET($1, $2, $3 )
dnl OPERAND_VMEMORYA_IMMEDIATE_OFFSET(imm_type_abbr, imm_type, imm_len)
@@ -42,9 +44,7 @@ operand vmemA_imm$1Offset$3()
op_cost(0);
format %{ %}
interface(CONST_INTER);
%}')
dnl
// 4 bit signed offset -- for predicated load/store
%}')dnl
OPERAND_VMEMORYA_IMMEDIATE_OFFSET(I, int, 4)
OPERAND_VMEMORYA_IMMEDIATE_OFFSET(L, long, 4)
dnl
@@ -63,8 +63,7 @@ operand vmemA_indOff$1$2(iRegP reg, vmemA_imm$1Offset$2 off)
scale(0x0);
disp($off);
%}
%}')
dnl
%}')dnl
OPERAND_VMEMORYA_INDIRECT_OFFSET(I, 4)
OPERAND_VMEMORYA_INDIRECT_OFFSET(L, 4)

@@ -75,7 +74,6 @@ source_hpp %{
%}

source %{

static inline BasicType vector_element_basic_type(const MachNode* n) {
const TypeVect* vt = n->bottom_type()->is_vect();
return vt->element_basic_type();
@@ -197,21 +195,19 @@ source %{
return true;
}
}

%}

definitions %{
int_def SVE_COST (200, 200);
%}


dnl
dnl ELEMENT_SHORT_CHART($1, $2)
dnl ELEMENT_SHORT_CHART(etype, node)
define(`ELEMENT_SHORT_CHAR',`ifelse(`$1', `T_SHORT',
`($2->bottom_type()->is_vect()->element_basic_type() == T_SHORT ||
($2->bottom_type()->is_vect()->element_basic_type() == T_CHAR))',
`($2->bottom_type()->is_vect()->element_basic_type() == $1)')')
`($2->bottom_type()->is_vect()->element_basic_type() == $1)')')dnl
dnl

// All SVE instructions
@@ -263,7 +259,7 @@ instruct $1(vReg dst, vReg src) %{
%}
ins_pipe(pipe_slow);
%}')dnl

dnl
// vector abs
UNARY_OP_TRUE_PREDICATE_ETYPE(vabsB, AbsVB, T_BYTE, B, 16, sve_abs)
UNARY_OP_TRUE_PREDICATE_ETYPE(vabsS, AbsVS, T_SHORT, H, 8, sve_abs)
@@ -743,12 +739,10 @@ REPLICATE(replicateB, ReplicateB, iRegIorL2I, B, 16)
REPLICATE(replicateS, ReplicateS, iRegIorL2I, H, 8)
REPLICATE(replicateI, ReplicateI, iRegIorL2I, S, 4)
REPLICATE(replicateL, ReplicateL, iRegL, D, 2)

REPLICATE_IMM8(replicateB_imm8, ReplicateB, immI8, B, 16)
REPLICATE_IMM8(replicateS_imm8, ReplicateS, immI8_shift8, H, 8)
REPLICATE_IMM8(replicateI_imm8, ReplicateI, immI8_shift8, S, 4)
REPLICATE_IMM8(replicateL_imm8, ReplicateL, immL8_shift8, D, 2)

FREPLICATE(replicateF, ReplicateF, vRegF, S, 4)
FREPLICATE(replicateD, ReplicateD, vRegD, D, 2)
dnl
@@ -767,9 +761,9 @@ instruct $1(vReg dst, vReg shift) %{
ins_pipe(pipe_slow);
%}')dnl
dnl
dnl VSHIFT_IMM_UNPREDICATE($1, $2, $3, $4, $5, $6 )
dnl VSHIFT_IMM_UNPREDICATE(insn_name, op_name, op_name2, size, min_vec_len, insn)
define(`VSHIFT_IMM_UNPREDICATE', `
dnl VSHIFT_IMM_UNPREDICATED($1, $2, $3, $4, $5, $6 )
dnl VSHIFT_IMM_UNPREDICATED(insn_name, op_name, op_name2, size, min_vec_len, insn)
define(`VSHIFT_IMM_UNPREDICATED', `
instruct $1(vReg dst, vReg src, immI shift) %{
predicate(UseSVE > 0 && n->as_Vector()->length() >= $5);
match(Set dst ($2 src ($3 shift)));
@@ -831,18 +825,18 @@ VSHIFT_TRUE_PREDICATE(vlsrB, URShiftVB, B, 16, sve_lsr)
VSHIFT_TRUE_PREDICATE(vlsrS, URShiftVS, H, 8, sve_lsr)
VSHIFT_TRUE_PREDICATE(vlsrI, URShiftVI, S, 4, sve_lsr)
VSHIFT_TRUE_PREDICATE(vlsrL, URShiftVL, D, 2, sve_lsr)
VSHIFT_IMM_UNPREDICATE(vasrB_imm, RShiftVB, RShiftCntV, B, 16, sve_asr)
VSHIFT_IMM_UNPREDICATE(vasrS_imm, RShiftVS, RShiftCntV, H, 8, sve_asr)
VSHIFT_IMM_UNPREDICATE(vasrI_imm, RShiftVI, RShiftCntV, S, 4, sve_asr)
VSHIFT_IMM_UNPREDICATE(vasrL_imm, RShiftVL, RShiftCntV, D, 2, sve_asr)
VSHIFT_IMM_UNPREDICATE(vlsrB_imm, URShiftVB, RShiftCntV, B, 16, sve_lsr)
VSHIFT_IMM_UNPREDICATE(vlsrS_imm, URShiftVS, RShiftCntV, H, 8, sve_lsr)
VSHIFT_IMM_UNPREDICATE(vlsrI_imm, URShiftVI, RShiftCntV, S, 4, sve_lsr)
VSHIFT_IMM_UNPREDICATE(vlsrL_imm, URShiftVL, RShiftCntV, D, 2, sve_lsr)
VSHIFT_IMM_UNPREDICATE(vlslB_imm, LShiftVB, LShiftCntV, B, 16, sve_lsl)
VSHIFT_IMM_UNPREDICATE(vlslS_imm, LShiftVS, LShiftCntV, H, 8, sve_lsl)
VSHIFT_IMM_UNPREDICATE(vlslI_imm, LShiftVI, LShiftCntV, S, 4, sve_lsl)
VSHIFT_IMM_UNPREDICATE(vlslL_imm, LShiftVL, LShiftCntV, D, 2, sve_lsl)
VSHIFT_IMM_UNPREDICATED(vasrB_imm, RShiftVB, RShiftCntV, B, 16, sve_asr)
VSHIFT_IMM_UNPREDICATED(vasrS_imm, RShiftVS, RShiftCntV, H, 8, sve_asr)
VSHIFT_IMM_UNPREDICATED(vasrI_imm, RShiftVI, RShiftCntV, S, 4, sve_asr)
VSHIFT_IMM_UNPREDICATED(vasrL_imm, RShiftVL, RShiftCntV, D, 2, sve_asr)
VSHIFT_IMM_UNPREDICATED(vlsrB_imm, URShiftVB, RShiftCntV, B, 16, sve_lsr)
VSHIFT_IMM_UNPREDICATED(vlsrS_imm, URShiftVS, RShiftCntV, H, 8, sve_lsr)
VSHIFT_IMM_UNPREDICATED(vlsrI_imm, URShiftVI, RShiftCntV, S, 4, sve_lsr)
VSHIFT_IMM_UNPREDICATED(vlsrL_imm, URShiftVL, RShiftCntV, D, 2, sve_lsr)
VSHIFT_IMM_UNPREDICATED(vlslB_imm, LShiftVB, LShiftCntV, B, 16, sve_lsl)
VSHIFT_IMM_UNPREDICATED(vlslS_imm, LShiftVS, LShiftCntV, H, 8, sve_lsl)
VSHIFT_IMM_UNPREDICATED(vlslI_imm, LShiftVI, LShiftCntV, S, 4, sve_lsl)
VSHIFT_IMM_UNPREDICATED(vlslL_imm, LShiftVL, LShiftCntV, D, 2, sve_lsl)
VSHIFT_COUNT(vshiftcntB, B, 16, T_BYTE)
VSHIFT_COUNT(vshiftcntS, H, 8, T_SHORT)
VSHIFT_COUNT(vshiftcntI, S, 4, T_INT)
@@ -859,4 +853,3 @@ BINARY_OP_UNPREDICATED(vsubI, SubVI, S, 4, sve_sub)
BINARY_OP_UNPREDICATED(vsubL, SubVL, D, 2, sve_sub)
BINARY_OP_UNPREDICATED(vsubF, SubVF, S, 4, sve_fsub)
BINARY_OP_UNPREDICATED(vsubD, SubVD, D, 2, sve_fsub)

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 2021, 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
@@ -3822,7 +3822,6 @@ void MatchNode::count_commutative_op(int& count) {
"MaxV", "MinV",
"MulI","MulL","MulF","MulD",
"MulVB","MulVS","MulVI","MulVL","MulVF","MulVD",
"MinV","MaxV",
"OrI","OrL",
"OrV",
"XorI","XorL",
@@ -4173,7 +4172,6 @@ bool MatchRule::is_vector() const {
"MulVB","MulVS","MulVI","MulVL","MulVF","MulVD",
"CMoveVD", "CMoveVF",
"DivVF","DivVD",
"MinV","MaxV",
"AbsVB","AbsVS","AbsVI","AbsVL","AbsVF","AbsVD",
"NegVF","NegVD","NegVI",
"SqrtVD","SqrtVF",
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2021, 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
@@ -50,6 +50,7 @@ void Location::print_on(outputStream* st) const {
case float_in_dbl: st->print(",float"); break;
case dbl: st->print(",double"); break;
case addr: st->print(",address"); break;
case vector: st->print(",vector"); break;
default: st->print("Wrong location type %d", type());
}
}
@@ -936,6 +936,8 @@ void nmethod::maybe_print_nmethod(DirectiveSet* directive) {
}

void nmethod::print_nmethod(bool printmethod) {
run_nmethod_entry_barrier(); // ensure all embedded OOPs are valid before printing

ttyLocker ttyl; // keep the following output all in one block
if (xtty != NULL) {
xtty->begin_head("print_nmethod");
@@ -1150,7 +1150,7 @@ Method* LinkResolver::linktime_resolve_special_method(const LinkInfo& link_info,
// and the selected method is recalculated relative to the direct superclass
// superinterface.method, which explicitly does not check shadowing
Klass* resolved_klass = link_info.resolved_klass();
Method* resolved_method;
Method* resolved_method = NULL;

if (!resolved_klass->is_interface()) {
resolved_method = resolve_method(link_info, Bytecodes::_invokespecial, CHECK_NULL);
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2021, 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
@@ -199,28 +199,23 @@ static bool stack_trace_precondition(const ObjectSample* sample) {

class StackTraceBlobInstaller {
private:
const JfrStackTraceRepository& _stack_trace_repo;
BlobCache _cache;
const JfrStackTrace* resolve(const ObjectSample* sample);
void install(ObjectSample* sample);
const JfrStackTrace* resolve(const ObjectSample* sample) const;
public:
StackTraceBlobInstaller(const JfrStackTraceRepository& stack_trace_repo);
StackTraceBlobInstaller() : _cache(JfrOptionSet::old_object_queue_size()) {
prepare_for_resolution();
}
~StackTraceBlobInstaller() {
JfrStackTraceRepository::clear_leak_profiler();
}
void sample_do(ObjectSample* sample) {
if (stack_trace_precondition(sample)) {
install(sample);
}
}
};

StackTraceBlobInstaller::StackTraceBlobInstaller(const JfrStackTraceRepository& stack_trace_repo) :
_stack_trace_repo(stack_trace_repo), _cache(JfrOptionSet::old_object_queue_size()) {
prepare_for_resolution();
}

const JfrStackTrace* StackTraceBlobInstaller::resolve(const ObjectSample* sample) {
return _stack_trace_repo.lookup(sample->stack_trace_hash(), sample->stack_trace_id());
}

#ifdef ASSERT
static void validate_stack_trace(const ObjectSample* sample, const JfrStackTrace* stack_trace) {
assert(!sample->has_stacktrace(), "invariant");
@@ -230,6 +225,10 @@ static void validate_stack_trace(const ObjectSample* sample, const JfrStackTrace
}
#endif

inline const JfrStackTrace* StackTraceBlobInstaller::resolve(const ObjectSample* sample) const {
return JfrStackTraceRepository::lookup_for_leak_profiler(sample->stack_trace_hash(), sample->stack_trace_id());
}

void StackTraceBlobInstaller::install(ObjectSample* sample) {
JfrBlobHandle blob = _cache.get(sample);
if (blob.valid()) {
@@ -242,23 +241,23 @@ void StackTraceBlobInstaller::install(ObjectSample* sample) {
writer.write_type(TYPE_STACKTRACE);
writer.write_count(1);
ObjectSampleCheckpoint::write_stacktrace(stack_trace, writer);
blob = writer.move();
blob = writer.copy();
_cache.put(sample, blob);
sample->set_stacktrace(blob);
}

static void install_stack_traces(const ObjectSampler* sampler, JfrStackTraceRepository& stack_trace_repo) {
static void install_stack_traces(const ObjectSampler* sampler) {
assert(sampler != NULL, "invariant");
const ObjectSample* const last = sampler->last();
if (last != sampler->last_resolved()) {
ResourceMark rm;
JfrKlassUnloading::sort();
StackTraceBlobInstaller installer(stack_trace_repo);
StackTraceBlobInstaller installer;
iterate_samples(installer);
}
}

void ObjectSampleCheckpoint::on_rotation(const ObjectSampler* sampler, JfrStackTraceRepository& stack_trace_repo) {
void ObjectSampleCheckpoint::on_rotation(const ObjectSampler* sampler) {
assert(sampler != NULL, "invariant");
assert(LeakProfiler::is_running(), "invariant");
JavaThread* const thread = JavaThread::current();
@@ -267,7 +266,7 @@ void ObjectSampleCheckpoint::on_rotation(const ObjectSampler* sampler, JfrStackT
ThreadInVMfromNative transition(thread);
MutexLocker lock(ClassLoaderDataGraph_lock);
// the lock is needed to ensure the unload lists do not grow in the middle of inspection.
install_stack_traces(sampler, stack_trace_repo);
install_stack_traces(sampler);
}

static bool is_klass_unloaded(traceid klass_id) {
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2021, 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
@@ -33,7 +33,6 @@ class InstanceKlass;
class JavaThread;
class JfrCheckpointWriter;
class JfrStackTrace;
class JfrStackTraceRepository;
class Klass;
class ObjectSample;
class ObjectSampleMarker;
@@ -53,7 +52,7 @@ class ObjectSampleCheckpoint : AllStatic {
static void on_type_set(JfrCheckpointWriter& writer);
static void on_type_set_unload(JfrCheckpointWriter& writer);
static void on_thread_exit(JavaThread* jt);
static void on_rotation(const ObjectSampler* sampler, JfrStackTraceRepository& repo);
static void on_rotation(const ObjectSampler* sampler);
};

#endif // SHARE_JFR_LEAKPROFILER_CHECKPOINT_OBJECTSAMPLECHECKPOINT_HPP

0 comments on commit c582a9c

Please sign in to comment.