Lines Matching refs:trip

67 // Compute loop exact trip count if possible. Do not recalculate trip count for
100 // Set exact trip count.
107 // Compute loop trip count from profile data as
562 // Calculate exact loop trip count and return true if loop can be maximally
576 // Note, max_juint is used to indicate unknown trip count.
650 // over the expected trip count of the loop. One is subtracted
651 // from the expected trip count because the pre-loop normally
661 // the residual iterations are more than 10% of the trip count
735 // Unroll once! (Each trip will soon do double iterations)
762 // Check loop body for tests of trip-counter plus loop-invariant vs
768 // Comparing trip+off vs limit
798 // Yeah! Found a test like 'trip+off vs limit'
930 // Reduce the post-loop trip count.
940 // Step A2: Build a zero-trip guard for the post-loop. After leaving the
942 // (the main-loop trip-counter exit value) because we will be changing
944 // trip guard until all unrolling is done.
1005 // Reduce the pre-loop trip count.
1016 // Step B2: Build a zero-trip guard for the main-loop. After leaving the
1018 // zero-trip guard will become the minimum-trip guard when we unroll
1120 // Subtract a trip count for the pre-loop.
1123 // It's difficult to be precise about the trip-counts
1144 // Unroll the loop body one step - make each trip do 2 iterations.
1175 // Search for zero-trip guard.
1185 // Occasionally it's possible for a zero-trip guard Opaque1 node to be
1189 return; // Cannot find zero-trip guard! Bail out!
1190 // Zero-trip test uses an 'opaque' node which is not shared.
1210 "odd trip count for maximally unroll");
1211 // Don't need to adjust limit for maximally unroll since trip count is even.
1219 // so we also don't need to adjust zero trip test.
1225 // New trip count should satisfy next conditions.
1232 // Step 2: Adjust the trip limit if it is called for.
1256 // Opaque node for each use of trip-counter and as result
1257 // zero trip guard limit will be different from loop limit.
1330 // Step 3: Find the min-trip test guaranteed before a 'main' loop.
1331 // Make it a 1-trip test (means at least 2 trips).
1335 // minimum-trip guard.
1341 // Adjust max trip count. The trip count is intentionally rounded
1344 // by the min-trip test. See bug 4834191 for a case where we over-unrolled
1353 // Adjust max trip count. The trip count is intentionally rounded
1356 // by the min-trip test. See bug 4834191 for a case where we over-unrolled
1364 // Step 2: Cut back the trip counter for an unroll amount of 2.
1365 // Loop will normally trip (limit - init)/stride_con. Since it's a
1371 Node *trip = new (C) DivINode( 0, span, stride );
1372 register_new_node( trip, ctrl );
1375 Node *rond = new (C) AndINode( trip, mtwo );
1391 // Step 3: Find the min-trip test guaranteed before a 'main' loop.
1392 // Make it a 1-trip test (means at least 2 trips).
1397 // minimum-trip guard.
1458 assert(cl->has_exact_trip_count(), "trip count is not exact");
1730 // Eliminate range-checks and other trip-counter vs loop-invariant tests.
1749 // Find the trip counter; we are iteration splitting based on it
1752 // to not ever trip end tests
1755 // Need to find the main-loop zero-trip guard
1765 // Can not optimize a loop if zero-trip Opaque1 node is optimized
1772 // not ever trip low tests.
1814 // Check loop body for tests of trip-counter plus loop-invariant vs
1841 jint scale_con= 1; // Assume trip counter not scaled
1855 // 'limit' maybe pinned below the zero trip test (probably from a
1857 // zero trip test expression which must occur before the zero test's if.
1875 // zero trip test.
2081 // The 'DO' part is to replace the trip counter with the value it will
2109 // main and post loops have explicitly created zero trip guard
2123 // Check for an obvious zero trip guard.
2142 tty->print("Removing empty loop with%s zero trip guard", needs_guard ? "out" : "");
2145 tty->print("Empty with%s zero trip guard ", needs_guard ? "out" : "");
2151 // Peel the loop to ensure there's a zero trip guard
2197 // Loop boundaries should be constant since trip count is exact.
2211 // Compute exact loop trip count if possible.
2250 // Compute loop trip count from profile data
2278 // line. Thus we clone a full loop up front whose trip count is
2282 // iteration of the unrolled body (zero-trip test required) and
2315 // Double loop body for unrolling. Adjust the minimum-trip test (will do
2371 // trip counter when there was no major reshaping.