policy_maximally_unroll ignores the current compilation size and can blow out the node counts.

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P4
    • 6
    • Affects Version/s: 1.4.2_12, 5.0u6
    • Component/s: hotspot
    • b73
    • generic
    • generic

        policy_maximally_unroll ignores the current compilation size and can blow out the node counts. The following suggested fix added the cutout from policy_peel into it.



        ==== //java/main-dev/java/hotspot/src/share/vm/opto/loopTransform.cpp#15 - /home/cliffc/HotSpot/cliffc-main/hotspot/src/share/vm/opto/loopTransform.cpp ====
        @@ -216,7 +216,8 @@
           uint unroll_limit = (uint)LoopUnrollLimit * 4;
           assert( (intx)unroll_limit == LoopUnrollLimit * 4, "LoopUnrollLimit must fit in 32bits");
           if( trip_count <= unroll_limit && body_size <= unroll_limit &&
        - (body_size * trip_count <= unroll_limit) ) {
        + (body_size * trip_count <= unroll_limit) &&
        + body_size*body_size+phase->C->unique() < 65000 ) {
             return trip_count; // maximally unroll
           }

              Assignee:
              Ross Knippel (Inactive)
              Reporter:
              Marvin Ma (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: