JDK 25 |
---|
25 b16Fixed |
Causes :
|
|
Causes :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
Attach TestAllocations.java fails with: Failed IR Rules (1) of Methods (1) ---------------------------------- 1) Method "static java.lang.Object compiler.c2.irTests.TestAllocation.test1(java.lang.Object)" - [Failed IR rules: 1]: * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={"_#ALLOC#_", "4"}, failOn={}, applyIfAnd={}, applyIfOr={}, applyIfNot={})" > Phase "PrintOptoAssembly": - counts: Graph contains wrong number of nodes: * Constraint 1: "(.*precise .*\R((.*(?i:mov|mv|xorl|nop|spill).*|\s*)\R)*.*(?i:call,static).*wrapper for: _new_instance_Java)" - Failed comparison: [found] 3 = 4 [given] - Matched nodes (3): * 449 movq RSI, precise compiler/c2/irTests/TestAllocation$MyClass: 0x00007f400c13c9d0:Constant:exact * # ptr 453 xorl RDX, RDX # int 455 movq RBP, [rsp + #0] # spill nop # 2 bytes pad for loops and calls 45b call,static wrapper for: _new_instance_Java * 470 movq RSI, precise java/lang/Object: 0x00007f40080039c8:Constant:exact * # ptr 47a xorl RDX, RDX # int 47c movq RBP, [rsp + #0] # spill nop # 3 bytes pad for loops and calls 483 call,static wrapper for: _new_instance_Java * 4c5 movq RSI, precise java/util/HashMap: 0x00007f400c13f208 (java/lang/Cloneable,java/io/Serializable,java/util/Map):Constant:exact * # ptr 4cf xorl RDX, RDX # int nop # 2 bytes pad for loops and calls 4d3 call,static wrapper for: _new_instance_Java The problem is that the following allocation is not detected by IRNode.ALLOC due to the pushq/popq spills: 495 B36: # out( B42 B37 ) <- in( B7 ) Freq: 0.000100017 495 movq RSI, precise java/util/HashSet: 0x00007f400c13d928 (java/lang/Cloneable,java/io/Serializable,java/lang/Iterable,java/util/Collection,java/util/Set):Constant:exact * # ptr 49f xorl RDX, RDX # int 4a1 movq RBP, [rsp + #0] # spill 4a5 pushq [rsp + #16] # 64-bit mem-mem spill popq [rsp + #8] 4af call,static wrapper for: _new_instance_Java
|