Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8259396

Investigate nested irreducible loops creation in 8253353 case

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: 16, 17
    • Fix Version/s: tbd
    • Component/s: hotspot
    • Labels:

      Description

      Running test case from JDK-8253353 shows that a lot (around 400) of nested irreducible loops were created after JDK-8240576 fix.

      Before JDK-8240576 I see next loops from TraceLoopOpts with only 2 IRREDUCIBLE outer loops:

      Loop: N0/N0 has_call has_sfpt
        Loop: N6764/N6752 IRREDUCIBLE has_call
          Loop: N2317/N3581 IRREDUCIBLE sfpts={ 4042 5697 }
          Loop: N6785/N4367 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5860 }
          Loop: N6794/N4380 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5674 }
          Loop: N6803/N4566 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5687 }
          Loop: N6812/N4577 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5971 }
          Loop: N6821/N4722 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 6047 }

      After that fix there is very long nested list of IRREDUCIBLE loops:

      Loop: N0/N0 has_call has_sfpt
        Loop: N6752/N3584 IRREDUCIBLE has_call
          Loop: N6764/N3585 IRREDUCIBLE has_call
            Loop: N6776/N3586 IRREDUCIBLE has_call
              Loop: N6788/N3587 IRREDUCIBLE has_call
                Loop: N6800/N3588 IRREDUCIBLE has_call
                  Loop: N6812/N3589 IRREDUCIBLE has_call
                    Loop: N6824/N3590 IRREDUCIBLE has_call
                      Loop: N6836/N3591 IRREDUCIBLE has_call
      ....
          Loop: N10592/N3581 IRREDUCIBLE
            Loop: N10604/N3580 sfpts={ 4042 5697 }
              Loop: N10614/N4367 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5860 }
              Loop: N10623/N4380 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5674 }
              Loop: N10632/N4566 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5687 }
              Loop: N10641/N4577 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 5971 }
              Loop: N10650/N4722 limit_check profile_predicated predicated counted [int,int),+1 (-1 iters) has_call has_sfpt sfpts={ 6047 }

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              kvn Vladimir Kozlov
              Reporter:
              kvn Vladimir Kozlov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated: