Integrated: 8281548: Add escape analysis tracing flag
Jorn Vernee
jvernee at openjdk.java.net
Tue Mar 1 16:31:05 UTC 2022
On Thu, 10 Feb 2022 16:41:09 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:
> Hi,
>
> This PR adds `TraceEscapeAnalysis` as a compiler directive and compile command (but not as global flag). The flag is intended to be used to track down the source of an object's escape, or why it is disqualified from scalar replacement for another reason.
>
> It starts by dumping the inital EA worklist, and then has individual trace messages for when a node's escape state is updated, or when it is marked as not scalar replaceable. I've already succesfully used this to track down a failure to scalar replace an allocation myself (see sample output), so it seemed useful to upstream.
>
> There were also 2 instances where I couldn't quite figure out the reason for a state update from the surrounding code. I've left the reason string as "reason unknown" in those cases, for now. Maybe someone could point out a better reason string for those cases?
>
> <details>
> <summary>Sample output (click to unfold)</summary>
>
> The object I'm interested in is represented by node JavaObject(22). From the messages under `+++++ Calculating escapse states and scalar replaceability` it can be traced back like: JavaObject(22) ->LocalVar(46) -> LocalVar(55) -> LocalVar(60) -> escapes as argument to call.
>
>
> +++++ Initial worklist for static jint main.PtrPass.panama_call_as_address(jobject) (ea_inv=0)
> JavaObject(0) GlobalEscape(GlobalEscape) NSR [ [ 66 255 248 241 246 ]] 1 Con === 0 [[]] #top
> JavaObject(2) GlobalEscape(GlobalEscape) NSR [ [ ]] 88 ConP === 0 [[ 162 44 42 154 57 43 ]] #java/lang/invoke/BoundMethodHandle$Species_L:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_L:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(3) GlobalEscape(GlobalEscape) NSR [ [ ]] 65 ConP === 0 [[ 106 36 41 40 38 39 ]] #java/lang/invoke/BoundMethodHandle$Species_LLLLL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LLLLL:exact * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(1) NoEscape(NoEscape) [ [ ]] 62 ConP === 0 [[ 215 34 217 37 260 ]] #NULL !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(4) GlobalEscape(GlobalEscape) NSR [ [ ]] 242 ConP === 0 [[ 216 ]] #precise jdk/internal/foreign/NativeMemorySegmentImpl: 0x00000281c0ebb790:Constant:exact * Klass:precise jdk/internal/foreign/NativeMemorySegmentImpl: 0x00000281c0ebb790:Constant:exact * !jvms: ConfinedScope::isAlive @ bci:6 (line 60) ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(5) GlobalEscape(GlobalEscape) NSR [ [ ]] 89 ConP === 0 [[ 154 42 ]] #java/lang/invoke/BoundMethodHandle$Species_LLLL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LLLL:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(6) GlobalEscape(GlobalEscape) NSR [ [ ]] 126 ConP === 0 [[ 54 ]] #java/lang/invoke/BoundMethodHandle$Species_LLL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LLL:exact * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(7) GlobalEscape(GlobalEscape) NSR [ [ ]] 132 ConP === 0 [[ 57 ]] #jdk/internal/invoke/NativeEntryPoint:exact * Oop:jdk/internal/invoke/NativeEntryPoint:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(8) GlobalEscape(GlobalEscape) NSR [ [ ]] 98 ConP === 0 [[ 43 57 44 ]] #jdk/internal/foreign/abi/Binding$Context$3:exact * Oop:jdk/internal/foreign/abi/Binding$Context$3:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(9) ArgEscape(ArgEscape) NSR [ 183F [ ]] 221 ThreadLocal === 0 [[ 183 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(10) GlobalEscape(GlobalEscape) NSR [ [ ]] 270 ConP === 0 [[ 263 ]] #precise jdk/internal/foreign/ResourceScopeImpl$GlobalScopeImpl: 0x00000281c09d2ae0:Constant:exact * Klass:precise jdk/internal/foreign/ResourceScopeImpl$GlobalScopeImpl: 0x00000281c09d2ae0:Constant:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:31 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(11) GlobalEscape(GlobalEscape) NSR [ [ ]] 247 ConP === 0 [[ 224 ]] #precise jdk/internal/foreign/ConfinedScope: 0x00000281c09d2ba8:Constant:exact * Klass:precise jdk/internal/foreign/ConfinedScope: 0x00000281c09d2ba8:Constant:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:-1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(12) GlobalEscape(GlobalEscape) NSR [ [ ]] 161 ConP === 0 [[ 106 237 229 ]] #precise jdk/internal/foreign/MemoryAddressImpl: 0x00000281c0ebb858:Constant:exact * Klass:precise jdk/internal/foreign/MemoryAddressImpl: 0x00000281c0ebb858:Constant:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(13) GlobalEscape(GlobalEscape) NSR [ [ ]] 170 ConN === 0 [[ 118 235 ]] #narrowoop: jdk/internal/foreign/NativeSymbolImpl:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(14) GlobalEscape(GlobalEscape) NSR [ [ ]] 123 ConP === 0 [[ 154 54 ]] #precise [jdk/internal/foreign/Scoped: 0x00000281c0ee6438 *: :Constant:exact * Klass:precise [jdk/internal/foreign/Scoped: 0x00000281c0ee6438 *: :Constant:exact * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(15) GlobalEscape(GlobalEscape) NSR [ [ ]] 128 ConP === 0 [[ 54 154 ]] #java/lang/invoke/BoundMethodHandle$Species_LLL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LLL:exact * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(16) GlobalEscape(GlobalEscape) NSR [ [ ]] 87 ConP === 0 [[ 54 162 42 57 44 43 42 154 154 154 42 ]] #jdk/internal/foreign/NativeSymbolImpl:exact * Oop:jdk/internal/foreign/NativeSymbolImpl:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(17) GlobalEscape(GlobalEscape) NSR [ [ ]] 93 ConP === 0 [[ 42 ]] #java/lang/invoke/MemberName:exact * Oop:java/lang/invoke/MemberName:exact * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(18) GlobalEscape(GlobalEscape) NSR [ [ ]] 92 ConP === 0 [[ 42 ]] #java/lang/Class:exact * Oop:java/lang/Class:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(19) GlobalEscape(GlobalEscape) NSR [ [ ]] 91 ConP === 0 [[ 42 ]] #java/lang/invoke/BoundMethodHandle$Species_LL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LL:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(20) GlobalEscape(GlobalEscape) NSR [ [ ]] 90 ConP === 0 [[ 154 42 ]] #java/lang/invoke/BoundMethodHandle$Species_LLL:exact * Oop:java/lang/invoke/BoundMethodHandle$Species_LLL:exact * !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(1) NoEscape(NoEscape) [ [ ]] 62 ConP === 0 [[ 215 34 217 37 260 ]] #NULL !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(21) NoEscape(NoEscape) [ [ 234 ]] 154 AllocateArray === 174 83 84 15 1 ( 122 123 124 125 1 1 1 1 1 86 87 1 88 1 1 1 1 1 1 89 87 86 1 1 1 1 90 1 1 1 1 1 1 1 1 1 87 127 1 1 128 1 1 1 1 1 1 1 1 1 1 1 ) [[ 258 257 209 252 95 234 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Array::newInstance @ bci:2 (line 78) 0x0000000800c05c00::invokeStatic @ bci:11 0x0000000800c06800::invoke @ bci:21 0x0000000800c15800::collector @ bci:13 0x0000000800c1c000::invoke @ bci:44 0x0000000800c1c400::invoke @ bci:16 0x0000000800c21c00::invoke @ bci:46 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47)
> JavaObject(22) NoEscape(NoEscape) [ [ 198 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(23) NoEscape(NoEscape) +8 ( )[ [ ]] 269 AddP === _ 66 66 274 [[ 259 ]] Interface:java/lang/foreign/MemorySegment:NotNull+8 * [narrowklass] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:31 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(24) NoEscape(NoEscape) +8 ( )[ [ ]] 273 AddP === _ 101 101 274 [[ 268 ]] Interface:java/lang/foreign/MemoryAddress:NotNull+8 * [narrowklass] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:31 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(25) NoEscape(NoEscape) +8 ( )[ [ ]] 272 AddP === _ 86 86 274 [[ 265 ]] Interface:java/lang/foreign/MemoryAddress:NotNull+8 * [narrowklass] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:31 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(26) NoEscape(NoEscape) +8 ( )[ [ ]] 271 AddP === _ 71 71 274 [[ 264 ]] Oop:jdk/internal/foreign/ResourceScopeImpl:NotNull+8 * [narrowklass] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:31 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(27) NoEscape(NoEscape) [ [ 117 ]] 54 AllocateArray === 120 121 55 15 1 ( 122 123 124 125 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 33 1 1 1 126 1 1 1 1 1 1 1 1 1 87 127 1 1 128 1 1 1 1 1 1 1 1 1 1 1 ) [[ 203 164 107 168 31 117 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Array::newInstance @ bci:2 (line 78) 0x0000000800c05c00::invokeStatic @ bci:11 0x0000000800c06800::invoke @ bci:21 0x0000000800c15800::collector @ bci:13 0x0000000800c1c000::invoke @ bci:44 0x0000000800c1c800::invoke @ bci:17 0x0000000800c21c00::invoke @ bci:61 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47) !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(28) NoEscape(NoEscape) oop +24 ( )[ [ 182 ]] 220 AddP === _ 70 70 122 [[ 182 ]] Oop:jdk/internal/foreign/NativeMemorySegmentImpl:NotNull:exact+24 * [narrow] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(29) NoEscape(NoEscape) oop +24 ( )[ [ 143 ]] 184 AddP === _ 71 71 122 [[ 143 ]] Oop:jdk/internal/foreign/ResourceScopeImpl:NotNull+24 * [narrow] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(30) NoEscape(NoEscape) oop ( 221P )[ [ 142 ]] 183 AddP === _ 1 221 222 [[ 142 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(31) NoEscape(NoEscape) +12 ( )[ [ ]] 146 AddP === _ 189 189 190 [[ 77 ]] Oop:jdk/internal/foreign/ConfinedScope:NotNull:exact+12 * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(32) NoEscape(NoEscape) oop +20 ( )[ [ ]] 171 AddP === _ 1 117 212 [[ 119 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(33) NoEscape(NoEscape) oop +20 ( )[ [ ]] 254 AddP === _ 1 234 212 [[ 236 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:-1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(34) NoEscape(NoEscape) +32 ( )[ [ ]] 148 AddP === _ 70 70 193 [[ 80 ]] Oop:jdk/internal/foreign/NativeMemorySegmentImpl:NotNull:exact+32 * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(35) NoEscape(NoEscape) oop +16 ( )[ [ ]] 169 AddP === _ 1 117 211 [[ 118 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(36) NoEscape(NoEscape) +16 ( )[ [ ]] 267 AddP === _ 1 198 211 [[ 251 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:-1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(37) NoEscape(NoEscape) +16 ( )[ [ ]] 175 AddP === _ 214 214 211 [[ 131 ]] Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact+16 * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(38) NoEscape(NoEscape) oop +16 ( )[ [ ]] 253 AddP === _ 1 234 211 [[ 235 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:-1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(39) NoEscape(NoEscape) [ [ ]] 72 LoadP === _ 60 142 [[ 38 219 ]] @rawptr:NotNull, idx=Raw; #java/lang/Thread:NotNull * Oop:java/lang/Thread:NotNull *
> LocalVar(40) NoEscape(NoEscape) [ 183F [ ]] 142 LoadP === _ 60 183 [[ 72 ]] @rawptr:BotPTR, idx=Raw; #rawptr:NotNull (does not depend only on test) !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(41) NoEscape(NoEscape) [ 184F [ 73 ]] 143 LoadN === _ 60 184 [[ 73 ]] @jdk/internal/foreign/ResourceScopeImpl+24 * [narrow], name=owner, idx=6; #narrowoop: java/lang/Thread * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(42) NoEscape(NoEscape) [ 220F [ 141 ]] 182 LoadN === _ 60 220 [[ 141 ]] @jdk/internal/foreign/AbstractMemorySegmentImpl+24 * [narrow], name=scope, idx=5; #narrowoop: jdk/internal/foreign/ResourceScopeImpl * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(43) GlobalEscape(GlobalEscape) [ [ ]] 12 Rethrow === 25 26 27 15 28 exception 29 [[ 0 ]]
> LocalVar(44) NoEscape(NoEscape) [ 1P [ 70 ]] 66 CastPP === 135 136 [[ 36 269 269 70 ]] #java/lang/foreign/MemorySegment:NotNull * Interface:java/lang/foreign/MemorySegment:NotNull * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(45) NoEscape(NoEscape) [ 154P [ ]] 234 Proj === 154 [[ 200 254 253 ]] #5 !jvms: ConfinedScope::isAlive @ bci:6 (line 60) ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(46) NoEscape(NoEscape) [ 106P [ 152 ]] 198 Proj === 106 [[ 230 152 267 ]] #5
> LocalVar(47) NoEscape(NoEscape) [ 54P [ ]] 117 Proj === 54 [[ 53 171 169 ]] #5 !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(48) NoEscape(NoEscape) [ 1P [ ]] 255 DecodeNKlass === _ 268 [[ 237 ]] #java/lang/foreign/MemoryAddress: 0x00000281c0ebd120 * Interface:java/lang/foreign/MemoryAddress: 0x00000281c0ebd120 * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(49) NoEscape(NoEscape) [ 1P [ ]] 248 DecodeNKlass === _ 265 [[ 229 ]] #java/lang/foreign/MemoryAddress: 0x00000281c0ebd120 * Interface:java/lang/foreign/MemoryAddress: 0x00000281c0ebd120 *
> LocalVar(50) NoEscape(NoEscape) [ 1P [ ]] 241 DecodeNKlass === _ 259 [[ 216 ]] #java/lang/foreign/MemorySegment: 0x00000281c0ebad38 * Interface:java/lang/foreign/MemorySegment: 0x00000281c0ebad38 * !jvms: ConfinedScope::isAlive @ bci:6 (line 60) ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(51) NoEscape(NoEscape) [ 143 [ ]] 73 DecodeN === _ 143 [[ 219 260 38 ]] #java/lang/Thread * Oop:java/lang/Thread * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(52) NoEscape(NoEscape) [ 1P [ ]] 246 DecodeNKlass === _ 264 [[ 263 224 ]] #jdk/internal/foreign/ResourceScopeImpl: 0x00000281c0ec1c38 * Klass:jdk/internal/foreign/ResourceScopeImpl: 0x00000281c0ec1c38 * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:-1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(53) NoEscape(NoEscape) [ 182 [ 71 ]] 141 DecodeN === _ 182 [[ 71 217 ]] #jdk/internal/foreign/ResourceScopeImpl * Oop:jdk/internal/foreign/ResourceScopeImpl * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:1 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(54) NoEscape(NoEscape) [ 66 [ ]] 70 CheckCastPP === 139 66 [[ 148 148 40 39 38 220 220 ]] #jdk/internal/foreign/NativeMemorySegmentImpl:NotNull:exact * Oop:jdk/internal/foreign/NativeMemorySegmentImpl:NotNull:exact * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(55) NoEscape(NoEscape) [ 198 [ 86 ]] 152 CheckCastPP === 196 198 [[ 151 86 ]] #jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(56) NoEscape(NoEscape) [ 141 [ 189 ]] 71 CastPP === 140 141 [[ 39 189 271 271 184 184 38 ]] #jdk/internal/foreign/ResourceScopeImpl:NotNull * Oop:jdk/internal/foreign/ResourceScopeImpl:NotNull * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(57) NoEscape(NoEscape) [ [ ]] 52 Phi === 46 112 113 114 [[ 29 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull *
> LocalVar(58) NoEscape(NoEscape) [ [ ]] 114 Phi === 165 166 167 [[ 52 162 162 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !orig=2293 !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(59) NoEscape(NoEscape) [ [ ]] 29 Phi === 25 51 52 [[ 12 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(60) NoEscape(NoEscape) [ 152 [ 127 ]] 86 CheckCastPP === _ 152 [[ 162 272 272 42 42 42 154 154 43 43 44 57 127 ]] #java/lang/foreign/MemoryAddress:NotNull * Interface:java/lang/foreign/MemoryAddress:NotNull * !orig=[431],2290 !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(61) NoEscape(NoEscape) [ 71 [ ]] 189 CheckCastPP === 187 71 [[ 146 146 ]] #jdk/internal/foreign/ConfinedScope:NotNull:exact * Oop:jdk/internal/foreign/ConfinedScope:NotNull:exact *
> LocalVar(62) NoEscape(NoEscape) [ 86 [ 101 172 ]] 127 CheckCastPP === 174 86 [[ 54 101 154 172 ]] #jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(63) NoEscape(NoEscape) [ [ ]] 214 CheckCastPP === 129 101 [[ 175 175 ]] #jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(64) NoEscape(NoEscape) [ 127 [ ]] 101 CheckCastPP === _ 127 [[ 214 44 273 273 ]] #java/lang/foreign/MemoryAddress:NotNull * Interface:java/lang/foreign/MemoryAddress:NotNull * !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:-1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(65) NoEscape(NoEscape) [ 127 [ ]] 172 EncodeP === _ 127 [[ 119 236 ]] #narrowoop: jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> +++++ Calculating escapse states and scalar replaceability
> LocalVar(58) NoEscape(NoEscape) -> GlobalEscape(NoEscape) escapes as arg to: 162 CallStaticJava === 165 205 206 15 1 ( 88 114 124 87 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114 ) [[ 204 108 163 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LILL)I int ( java/lang/invoke/MethodHandle:NotNull *, java/lang/Object *, int, java/lang/Object *, java/lang/Object * ) 0x0000000800c21c00::invoke @ bci:77 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47) !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(58) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) escapes as arg to: 162 CallStaticJava === 165 205 206 15 1 ( 88 114 124 87 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114 ) [[ 204 108 163 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LILL)I int ( java/lang/invoke/MethodHandle:NotNull *, java/lang/Object *, int, java/lang/Object *, java/lang/Object * ) 0x0000000800c21c00::invoke @ bci:77 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47) !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(60) NoEscape(NoEscape) -> GlobalEscape(NoEscape) escapes as arg to: 162 CallStaticJava === 165 205 206 15 1 ( 88 114 124 87 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114 ) [[ 204 108 163 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LILL)I int ( java/lang/invoke/MethodHandle:NotNull *, java/lang/Object *, int, java/lang/Object *, java/lang/Object * ) 0x0000000800c21c00::invoke @ bci:77 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47) !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(60) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) escapes as arg to: 162 CallStaticJava === 165 205 206 15 1 ( 88 114 124 87 86 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114 ) [[ 204 108 163 ]] # Static java.lang.invoke.MethodHandle::invokeBasic(LILL)I int ( java/lang/invoke/MethodHandle:NotNull *, java/lang/Object *, int, java/lang/Object *, java/lang/Object * ) 0x0000000800c21c00::invoke @ bci:77 0x0000000800c20c00::invokeExact_MT @ bci:19 PtrPass::panama_call_as_address @ bci:9 (line 47) !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:14 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(55) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: LocalVar(60) GlobalEscape(GlobalEscape) [ 152 [ 127 272b ]] 86 CheckCastPP === _ 152 [[ 162 272 272 42 42 42 154 154 43 43 44 57 127 ]] #java/lang/foreign/MemoryAddress:NotNull * Interface:java/lang/foreign/MemoryAddress:NotNull * !orig=[431],2290 !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(55) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: LocalVar(60) GlobalEscape(GlobalEscape) [ 152 [ 127 272b ]] 86 CheckCastPP === _ 152 [[ 162 272 272 42 42 42 154 154 43 43 44 57 127 ]] #java/lang/foreign/MemoryAddress:NotNull * Interface:java/lang/foreign/MemoryAddress:NotNull * !orig=[431],2290 !jvms: NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(46) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: LocalVar(55) GlobalEscape(GlobalEscape) [ 198 [ 86 ]] 152 CheckCastPP === 196 198 [[ 151 86 ]] #jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(46) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: LocalVar(55) GlobalEscape(GlobalEscape) [ 198 [ 86 ]] 152 CheckCastPP === 196 198 [[ 151 86 ]] #jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * Oop:jdk/internal/foreign/MemoryAddressImpl:NotNull:exact * !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:4 (line 203) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> JavaObject(22) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: LocalVar(46) GlobalEscape(GlobalEscape) [ 106P [ 152 267b ]] 198 Proj === 106 [[ 230 152 267 ]] #5
> JavaObject(22) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: LocalVar(46) GlobalEscape(GlobalEscape) [ 106P [ 152 267b ]] 198 Proj === 106 [[ 230 152 267 ]] #5
> LocalVar(59) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: LocalVar(43) GlobalEscape(GlobalEscape) [ 29 [ ]] 12 Rethrow === 25 26 27 15 28 exception 29 [[ 0 ]]
> LocalVar(59) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: LocalVar(43) GlobalEscape(GlobalEscape) [ 29 [ ]] 12 Rethrow === 25 26 27 15 28 exception 29 [[ 0 ]]
> LocalVar(57) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: LocalVar(59) GlobalEscape(GlobalEscape) [ 1P 52 [ 12 ]] 29 Phi === 25 51 52 [[ 12 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> LocalVar(57) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: LocalVar(59) GlobalEscape(GlobalEscape) [ 1P 52 [ 12 ]] 29 Phi === 25 51 52 [[ 12 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(30) NoEscape(NoEscape) -> ArgEscape(NoEscape) propagated from: JavaObject(9) ArgEscape(ArgEscape) NSR [ 183F [ ]] 221 ThreadLocal === 0 [[ 183 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(30) ArgEscape(NoEscape) -> ArgEscape(ArgEscape) propagated from: JavaObject(9) ArgEscape(ArgEscape) NSR [ 183F [ ]] 221 ThreadLocal === 0 [[ 183 ]] !jvms: ResourceScopeImpl::checkValidStateSlow @ bci:28 (line 205) AbstractMemorySegmentImpl::checkValidState @ bci:4 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(36) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(36) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(25) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(25) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(24) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(24) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(37) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(37) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(22) GlobalEscape(GlobalEscape) [ 267F 272F 273F 175F [ 198 152 86 127 101 172 214 254 171 ]] 106 Allocate === 160 59 60 15 1 ( 122 161 124 1 1 65 1 80 1 ) [[ 157 110 47 266 83 198 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) MemoryAddress::ofLong @ bci:12 (line 165) NativeMemorySegmentImpl::address @ bci:8 (line 65) PtrPass::panama_call_as_address @ bci:4 (line 47) !jvms: AbstractMemorySegmentImpl::checkValidState @ bci:1 (line 366) NativeMemorySegmentImpl::address @ bci:1 (line 64) PtrPass::panama_call_as_address @ bci:4 (line 47)
> Field(23) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(23) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(28) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(28) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(34) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(34) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 ]] 1 Con === 0 [[]] #top
> Field(26) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
> Field(26) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
> Field(29) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
> Field(29) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
> Field(31) NoEscape(NoEscape) -> GlobalEscape(NoEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
> Field(31) GlobalEscape(NoEscape) -> GlobalEscape(GlobalEscape) propagated from: JavaObject(0) GlobalEscape(GlobalEscape) NSR [ 269F 220F 148F 271F 184F 146F [ 66 255 248 241 246 29 114 52 183 142 72 70 12 220 182 141 71 189 ]] 1 Con === 0 [[]] #top
>
> </details>
>
> Testing:
> - Manually running hotspot compiler tests with `-XX:CompileCommand=TraceEscapeAnalysis,*::*`
> - Tier1-4
>
> Thanks,
> Jorn
This pull request has now been integrated.
Changeset: 8fec7b87
Author: Jorn Vernee <jvernee at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/8fec7b87c1bc762f9c8ef41cd715d5aaab4c0324
Stats: 141 lines in 4 files changed: 96 ins; 0 del; 45 mod
8281548: Add escape analysis tracing flag
Reviewed-by: kvn, thartmann, xliu
-------------
PR: https://git.openjdk.java.net/jdk/pull/7428
More information about the hotspot-compiler-dev
mailing list