Home | History | Annotate | Download | only in gcc

Lines Matching defs:epilog

1432    time, an epilog loop will be generated, and the loop induction variables
1434 the epilog loop. Here we check that the access function of the loop IVs
1517 after LOOP: the IVs of LOOP are now used by an epilog loop.
1545 that leads to the epilog loop; other paths skip the epilog loop). This
1928 value for the epilog loop. If CHECK_PROFITABILITY is true, TH is the
2117 /* LCSSA_PHI is a lcssa phi of EPILOG loop which is copied from LOOP,
2123 find_guard_arg (class loop *loop, class loop *epilog ATTRIBUTE_UNUSED,
2334 /* LOOP and EPILOG are two consecutive loops in CFG and EPILOG is copied
2336 point between the two loops to the end of EPILOG. Edges GUARD_EDGE
2337 and MERGE_EDGE are the two pred edges of merge_bb at the end of EPILOG.
2380 For each name used out side EPILOG (i.e - for each name that has a lcssa
2388 slpeel_update_phi_nodes_for_guard2 (class loop *loop, class loop *epilog,
2398 gcc_assert (single_pred (exit_bb) == single_exit (epilog)->dest);
2415 tree guard_arg = find_guard_arg (loop, epilog, update_phi);
2435 /* EPILOG loop is duplicated from the original loop for vectorizing,
2439 slpeel_update_phi_nodes_for_lcssa (class loop *epilog)
2442 basic_block exit_bb = single_exit (epilog)->dest;
2525 This function peels prolog and epilog from the loop, adds guards skipping
2526 PROLOG and EPILOG for various conditions. As a result, the changed CFG
2562 EPILOG:
2570 Note this function peels prolog and epilog only if it's necessary,
2677 class loop *prolog, *epilog = NULL;
2781 /* Skip this loop to epilog when there are not enough iterations to enter this
2788 this we use the upper bounds on the prolog and epilog peeling. When we
2798 /* Epilog loop must be executed if the number of iterations for epilog
2800 the end of vector loop and skip to the end of epilog loop. */
2804 /* PEELING_FOR_GAPS is special because epilog loop must be executed. */
2812 /* Due to the order in which we peel prolog and epilog, we first
2815 separately. Note in this case, the probability of epilog loop
2914 /* Peel epilog and put it on exit edge of loop. If we are vectorizing
2915 said epilog then we should use a copy of the main loop as a starting
2918 If we are not vectorizing the epilog then we should use the scalar loop
2921 epilog = vect_epilogues ? get_loop_copy (loop) : scalar_loop;
2942 epilog = slpeel_tree_duplicate_loop_to_edge_cfg (loop, epilog, e);
2943 if (!epilog)
2949 epilog->force_vectorize = false;
2950 slpeel_update_phi_nodes_for_loops (loop_vinfo, loop, epilog, false);
2953 and skip to epilog. Note this only happens when the number of
2966 guard_to = split_edge (loop_preheader_edge (epilog));
2974 slpeel_update_phi_nodes_for_guard1 (first_loop, epilog, guard_e, e);
2980 /* Scale probability of epilog loop back.
2983 basic_block *bbs = get_loop_body (epilog);
2984 for (unsigned int i = 0; i < epilog->num_nodes; i++)
2992 basic_block bb_before_epilog = loop_preheader_edge (epilog)->src;
3015 update_e = skip_vector ? e : loop_preheader_edge (epilog);
3024 guard_to = split_edge (single_exit (epilog));
3031 slpeel_update_phi_nodes_for_guard2 (loop, epilog, guard_e,
3032 single_exit (epilog));
3033 /* Only need to handle basic block before epilog loop if it's not
3041 scale_loop_profile (epilog, prob_epilog, 0);
3044 slpeel_update_phi_nodes_for_lcssa (epilog);
3051 record_niter_bound (epilog, bound - 1, false, true);
3061 epilog->aux = epilogue_vinfo;
3062 LOOP_VINFO_LOOP (epilogue_vinfo) = epilog;
3064 loop_constraint_clear (epilog, LOOP_C_INFINITE);
3137 return vect_epilogues ? epilog : NULL;