1) Method "static int compiler.escapeAnalysis.TestRematerializeObjects.test1(boolean)" - [Failed IR rules: 1]: * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#ALLOC_ARRAY#_", "1", "_#UNSTABLE_IF_TRAP#_", "1", "_#C#STORE_L_OF_CLASS#_", "int\\[int:4\\]", "2", "_#C#SAFEPOINT_SCALAROBJECT_OF#_", "fields@\\[0..3\\]", "0"}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={"EliminateAllocations", "false", "UseUnalignedAccesses", "true"}, applyIfNot={})" > Phase "PrintIdeal": - counts: Graph contains wrong number of nodes: * Constraint 3: "(\d+(\s){2}(StoreL.*)+(\s){2}===.*@(\w+: ?)*[\w/\$]*\bint\[int:4\]( \([^\)]+\))?(:|\+)\S* \*)" - Failed comparison: [found] 1 = 2 [given] - Matched node: * 168 StoreL === 104 100 70 167 [[ 136 101 ]] @int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact[1] *, idx=6; mismatched Memory: @int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact[0] * 1) Compilation of "static int compiler.escapeAnalysis.TestRematerializeObjects.test1(boolean)": > Phase "PrintIdeal": AFTER: print_ideal 0 Root === 0 133 163 164 [[ 0 1 3 22 23 134 128 28 29 161 91 32 35 90 83 82 42 76 69 75 167 173 174 176 186 189 192 196 198 202 206 209 218 ]] inner 1 Con === 0 [[ ]] #top 3 Start === 3 0 [[ 3 5 6 7 8 9 10 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:int} 5 Parm === 3 [[ 215 178 179 ]] Control !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 6 Parm === 3 [[ 188 171 ]] I_O !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 7 Parm === 3 [[ 62 113 211 41 178 179 195 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 8 Parm === 3 [[ 164 163 129 133 211 97 ]] FramePtr !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 9 Parm === 3 [[ 164 163 129 ]] ReturnAdr !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 10 Parm === 3 [[ 120 97 129 211 ]] Parm0: int !jvms: TestRematerializeObjects::test1 @ bci:-1 (line 89) 16 MergeMem === _ 1 100 1 1 1 136 [[ 163 ]] { - - - N136:int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any * } Memory: @BotPTR *+bot, idx=Bot; 22 ConI === 0 [[ 211 204 ]] #int:4 23 ConP === 0 [[ 211 ]] #precise [int (java/lang/Cloneable,java/io/Serializable): :Constant:exact * 28 ConI === 0 [[ 120 ]] #int:0 32 ConL === 0 [[ 205 70 ]] #long:16 35 ConL === 0 [[ 180 ]] #long:32 41 MergeMem === _ 1 7 61 63 64 65 [[ 97 ]] { N61:rawptr:BotPTR N63:java/lang/Object * N64:java/lang/Object+8 * [narrowklass] N65:int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 42 ConI === 0 [[ 151 ]] #int:1 47 Proj === 211 [[ 50 ]] #0 !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 50 Catch === 47 57 [[ 212 52 ]] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 52 CatchProj === 50 [[ 111 55 ]] #1@bci -1 !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 53 MergeMem === _ 1 113 114 [[ 164 ]] { N114:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 55 CreateEx === 52 57 [[ 115 ]] #java/lang/Throwable (java/io/Serializable):NotNull * Oop:java/lang/Throwable (java/io/Serializable):NotNull * !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 56 Proj === 211 [[ 114 170 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 57 Proj === 211 [[ 50 55 112 ]] #1 !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 59 Initialize === 169 1 62 1 1 1 210 [[ 60 61 63 64 65 ]] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 60 Proj === 59 [[ 97 66 ]] #0 !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 61 Proj === 59 [[ 41 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 62 MergeMem === _ 1 170 1 1 1 7 [[ 59 ]] { - - - N7:int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 63 NarrowMemProj === 59 [[ 41 ]] #2 Memory: @java/lang/Object *, idx=4; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 64 NarrowMemProj === 59 [[ 41 ]] #2 Memory: @java/lang/Object+8 * [narrowklass], idx=5; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 65 NarrowMemProj === 59 [[ 41 ]] #2 Memory: @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=6; !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 66 CheckCastPP === 60 172 [[ 129 70 70 92 92 84 84 97 ]] #int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact * !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 70 AddP === _ 66 66 32 [[ 168 ]] !jvms: TestRematerializeObjects::test1 @ bci:8 (line 90) 83 ConL === 0 [[ 84 208 ]] #long:24 84 AddP === _ 66 66 83 [[ 148 ]] !jvms: TestRematerializeObjects::test1 @ bci:19 (line 92) 91 ConL === 0 [[ 92 ]] #long:28 92 AddP === _ 66 66 91 [[ 136 ]] !jvms: TestRematerializeObjects::test1 @ bci:24 (line 93) 97 CallStaticJava === 60 171 41 8 1 (10 66 ) [[ 98 99 100 ]] # Static compiler.escapeAnalysis.TestRematerializeObjects::dontinline void ( ) TestRematerializeObjects::test1 @ bci:25 (line 94) !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 98 Proj === 97 [[ 103 ]] #0 !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 99 Proj === 97 [[ 129 103 163 108 112 ]] #1 !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 100 Proj === 97 [[ 101 16 113 114 168 ]] #2 Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 101 MergeMem === _ 1 100 1 1 1 168 [[ 129 ]] { - - - N168:int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any * } Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 103 Catch === 98 99 [[ 104 105 ]] !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 104 CatchProj === 103 [[ 122 168 ]] #0@bci -1 !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 105 CatchProj === 103 [[ 111 108 ]] #1@bci -1 !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 108 CreateEx === 105 99 [[ 115 ]] #java/lang/Throwable (java/io/Serializable):NotNull * Oop:java/lang/Throwable (java/io/Serializable):NotNull * !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 111 Region === 111 52 105 [[ 111 112 113 114 115 164 ]] !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 112 Phi === 111 57 99 [[ 164 ]] #abIO !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 113 Phi === 111 7 100 [[ 53 ]] #memory Memory: @BotPTR *+bot, idx=Bot; !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 114 Phi === 111 56 100 [[ 53 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 115 Phi === 111 55 108 [[ 164 ]] #java/lang/Throwable (java/io/Serializable):NotNull * Oop:java/lang/Throwable (java/io/Serializable):NotNull * !jvms: TestRematerializeObjects::test1 @ bci:25 (line 94) 120 CmpI === _ 10 28 [[ 121 ]] !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 121 Bool === _ 120 [[ 122 ]] [ne] !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 122 If === 104 121 [[ 123 124 ]] P=0.000000, C=5375.000000 !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 123 IfTrue === 122 [[ 129 ]] #1 !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 124 IfFalse === 122 [[ 163 148 136 ]] #0 !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 128 ConI === 0 [[ 129 ]] #int:-187 129 CallStaticJava === 123 99 101 8 9 (128 1 66 10 ) [[ 130 ]] # Static uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0') void ( int ) C=0.000100 TestRematerializeObjects::test1 @ bci:38 (line 97) reexecute !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 130 Proj === 129 [[ 133 ]] #0 !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 133 Halt === 130 1 1 8 1 [[ 0 ]] !jvms: TestRematerializeObjects::test1 @ bci:38 (line 97) 134 ConI === 0 [[ 136 ]] #int:4096 136 StoreI === 124 168 92 134 [[ 16 148 ]] @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=6; Memory: @int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact[3] *, idx=6; !jvms: TestRematerializeObjects::test1 @ bci:59 (line 101) 148 LoadI === 124 136 84 [[ 152 151 ]] @int[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=6; #int !jvms: TestRematerializeObjects::test1 @ bci:74 (line 102) 151 LShiftI === _ 148 42 [[ 152 ]] !jvms: TestRematerializeObjects::test1 @ bci:75 (line 102) 152 AddI === _ 151 148 [[ 160 ]] !jvms: TestRematerializeObjects::test1 @ bci:75 (line 102) 160 AddI === _ 152 161 [[ 163 ]] !jvms: TestRematerializeObjects::test1 @ bci:82 (line 102) 161 ConI === 0 [[ 160 ]] #int:16417 163 Return === 124 99 16 8 9 returns 160 [[ 0 ]] 164 Rethrow === 111 112 53 8 9 exception 115 [[ 0 ]] 167 ConL === 0 [[ 168 ]] #long:68719476737 168 StoreL === 104 100 70 167 [[ 136 101 ]] @int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact[1] *, idx=6; mismatched Memory: @int[int:4] (java/lang/Cloneable,java/io/Serializable):NotNull:exact[0] *, idx=6; !orig=[119] !jvms: TestRematerializeObjects::test1 @ bci:36 (line 96) 169 Region === 169 212 217 [[ 169 170 171 172 210 207 59 ]] !orig=[51] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 170 Phi === 169 56 204 [[ 62 207 ]] #memory Memory: @rawptr:BotPTR, idx=Raw; 171 Phi === 169 6 194 [[ 97 ]] #abIO 172 Phi === 169 213 179 [[ 205 66 208 ]] #rawptr:BotPTR !orig=[58] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 173 ThreadLocal === 0 [[ 175 177 ]] 174 ConL === 0 [[ 175 ]] #long:440 175 AddP === _ 1 173 174 [[ 179 195 ]] 176 ConL === 0 [[ 177 ]] #long:456 177 AddP === _ 1 173 176 [[ 178 ]] 178 LoadP === 5 7 177 [[ 181 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test, raw access) 179 LoadP === 5 7 175 [[ 180 187 190 193 197 199 199 203 203 172 ]] @rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test, raw access) 180 AddP === _ 1 179 35 [[ 181 187 190 193 195 ]] 181 CmpP === _ 180 178 [[ 214 ]] 186 ConL === 0 [[ 187 ]] #long:256 187 AddP === _ 179 180 186 [[ 188 ]] 188 PrefetchAllocation === 217 6 187 [[ 191 ]] 189 ConL === 0 [[ 190 ]] #long:320 190 AddP === _ 179 180 189 [[ 191 ]] 191 PrefetchAllocation === _ 188 190 [[ 194 ]] 192 ConL === 0 [[ 193 ]] #long:384 193 AddP === _ 179 180 192 [[ 194 ]] 194 PrefetchAllocation === _ 191 193 [[ 171 ]] 195 StoreP === 217 7 175 180 [[ 197 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; 196 ConL === 0 [[ 197 ]] #long:1 197 StoreL === 217 195 179 196 [[ 201 ]] @null Memory: @rawptr:BotPTR, idx=Raw; 198 ConL === 0 [[ 199 ]] #long:8 199 AddP === _ 179 179 198 [[ 201 ]] 201 StoreNKlass === 217 197 199 218 [[ 204 ]] @null Memory: @rawptr:BotPTR, idx=Raw; 202 ConL === 0 [[ 203 ]] #long:12 203 AddP === _ 179 179 202 [[ 204 ]] 204 StoreI === 217 201 203 22 [[ 170 ]] @null Memory: @rawptr:BotPTR, idx=Raw; 205 AddP === _ 1 172 32 [[ 207 ]] !orig=73 !jvms: TestRematerializeObjects::test1 @ bci:8 (line 90) 206 ConL === 0 [[ 207 ]] #long:4503599627436032 207 StoreL === 169 170 205 206 [[ 210 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !orig=[79],78 !jvms: TestRematerializeObjects::test1 @ bci:13 (line 91) 208 AddP === _ 1 172 83 [[ 210 ]] !orig=87 !jvms: TestRematerializeObjects::test1 @ bci:19 (line 92) 209 ConL === 0 [[ 210 ]] #long:72057594037928192 210 StoreL === 169 207 208 209 [[ 59 ]] @rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw; !orig=[94],93 !jvms: TestRematerializeObjects::test1 @ bci:24 (line 93) 211 CallStaticJava === 216 1 7 8 1 (23 22 10 1 ) [[ 213 57 56 47 ]] # Static C2 Runtime new_array_blob rawptr:NotNull ( java/lang/Object:NotNull *, int ) C=0.000100 TestRematerializeObjects::test1 @ bci:1 (line 89) !orig=46 !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 212 CatchProj === 50 [[ 169 ]] #0@bci -1 !orig=[51] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 213 Proj === 211 [[ 172 ]] #5 !orig=[58] !jvms: TestRematerializeObjects::test1 @ bci:1 (line 89) 214 Bool === _ 181 [[ 215 ]] [lt] 215 If === 5 214 [[ 216 217 ]] P=0.999900, C=-1.000000 !orig=[183] 216 IfFalse === 215 [[ 211 ]] #0 !orig=[184] 217 IfTrue === 215 [[ 169 204 201 197 195 188 ]] #1 !orig=[185] 218 ConNKlass === 0 [[ 201 ]] #narrowklass: precise [int (java/lang/Cloneable,java/io/Serializable): :Constant:exact *