jdk-24/test/hotspot/jtreg/compiler/conversions
Roberto Castañeda Lozano 432c387e21 8254317: C2: Resource consumption of ConvI2LNode::Ideal() grows exponentially
Prevent exponential number of calls to ConvI2LNode::Ideal() when AddIs are used
multiple times by other AddIs in the optimization ConvI2L(AddI(x, y)) ->
AddL(ConvI2L(x), ConvI2L(y)). This is achieved by (1) reusing existing ConvI2Ls
if possible rather than eagerly creating new ones and (2) postponing the
optimization of newly created ConvI2Ls. Remove hook node solution introduced in
8217359, since this is subsumed by (2). Use phase->is_IterGVN() rather than
can_reshape to check if ConvI2LNode::Ideal() is called within iterative GVN, for
clarity. Add regression tests that cover different shapes and sizes of AddI
subgraphs, implicitly checking (by not timing out) that there is no
combinatorial explosion.

Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: vlivanov, kvn
2020-11-11 10:18:36 +00:00
..
Conversion.jasm 8234617: C1: Incorrect result of field load due to missing narrowing conversion 2019-12-03 08:29:04 +01:00
TestChainOfIntAddsToLongConversion.java 8253404: C2: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded limit 2020-10-08 12:30:38 +00:00
TestMoveConvI2LThroughAddIs.java 8254317: C2: Resource consumption of ConvI2LNode::Ideal() grows exponentially 2020-11-11 10:18:36 +00:00
TestPrimitiveConversions.java 8234617: C1: Incorrect result of field load due to missing narrowing conversion 2019-12-03 08:29:04 +01:00