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