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

Investigate nested irreducible loops creation in 8253353 case

XMLWordPrintable

      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 }

            epeter Emanuel Peter
            kvn Vladimir Kozlov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: