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

Missing loop predicate for loop with multiple entries

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • hs21
    • 7
    • hotspot
    • b06
    • sparc
    • solaris_10
    • Verified

        Consider next case:

        if (a) {
          ...
        }
        for (; i<l;i++) {}

        The loop has 2 entry paths. Loop predicates are generated for each path and they have different code execution state. Later in IdealLoopTree::beautify_loops() a merge region will be created for these fall in paths separating predicates from the loop. As result those predicates will be removed.

        Investigate possibility to add an empty block before loop head block in CI flow to merge fall in paths only (not back branches).

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

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: