Missing loop predicate for loop with multiple entries

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Fixed
    • Priority: P4
    • hs21
    • Affects Version/s: 7
    • Component/s: 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).

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

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: