Lines Matching refs:loop_vinfo
170 vect_determine_vectorization_factor (loop_vec_info loop_vinfo) in vect_determine_vectorization_factor() argument
172 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_determine_vectorization_factor()
173 basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); in vect_determine_vectorization_factor()
470 LOOP_VINFO_VECT_FACTOR (loop_vinfo) = vectorization_factor; in vect_determine_vectorization_factor()
531 vect_analyze_scalar_cycles_1 (loop_vec_info loop_vinfo, struct loop *loop) in vect_analyze_scalar_cycles_1() argument
612 nested_cycle = (loop != LOOP_VINFO_LOOP (loop_vinfo)); in vect_analyze_scalar_cycles_1()
613 reduc_stmt = vect_force_simple_reduction (loop_vinfo, phi, !nested_cycle, in vect_analyze_scalar_cycles_1()
648 LOOP_VINFO_REDUCTIONS (loop_vinfo), in vect_analyze_scalar_cycles_1()
684 vect_analyze_scalar_cycles (loop_vec_info loop_vinfo) in vect_analyze_scalar_cycles() argument
686 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_analyze_scalar_cycles()
688 vect_analyze_scalar_cycles_1 (loop_vinfo, loop); in vect_analyze_scalar_cycles()
700 vect_analyze_scalar_cycles_1 (loop_vinfo, loop->inner); in vect_analyze_scalar_cycles()
868 destroy_loop_vec_info (loop_vec_info loop_vinfo, bool clean_stmts) in destroy_loop_vec_info() argument
878 if (!loop_vinfo) in destroy_loop_vec_info()
881 loop = LOOP_VINFO_LOOP (loop_vinfo); in destroy_loop_vec_info()
883 bbs = LOOP_VINFO_BBS (loop_vinfo); in destroy_loop_vec_info()
888 free (LOOP_VINFO_BBS (loop_vinfo)); in destroy_loop_vec_info()
889 free_data_refs (LOOP_VINFO_DATAREFS (loop_vinfo)); in destroy_loop_vec_info()
890 free_dependence_relations (LOOP_VINFO_DDRS (loop_vinfo)); in destroy_loop_vec_info()
891 VEC_free (loop_p, heap, LOOP_VINFO_LOOP_NEST (loop_vinfo)); in destroy_loop_vec_info()
892 VEC_free (gimple, heap, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo)); in destroy_loop_vec_info()
893 VEC_free (ddr_p, heap, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)); in destroy_loop_vec_info()
895 free (loop_vinfo); in destroy_loop_vec_info()
915 free (LOOP_VINFO_BBS (loop_vinfo)); in destroy_loop_vec_info()
916 free_data_refs (LOOP_VINFO_DATAREFS (loop_vinfo)); in destroy_loop_vec_info()
917 free_dependence_relations (LOOP_VINFO_DDRS (loop_vinfo)); in destroy_loop_vec_info()
918 VEC_free (loop_p, heap, LOOP_VINFO_LOOP_NEST (loop_vinfo)); in destroy_loop_vec_info()
919 VEC_free (gimple, heap, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo)); in destroy_loop_vec_info()
920 VEC_free (ddr_p, heap, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)); in destroy_loop_vec_info()
921 slp_instances = LOOP_VINFO_SLP_INSTANCES (loop_vinfo); in destroy_loop_vec_info()
925 VEC_free (slp_instance, heap, LOOP_VINFO_SLP_INSTANCES (loop_vinfo)); in destroy_loop_vec_info()
926 VEC_free (gimple, heap, LOOP_VINFO_STRIDED_STORES (loop_vinfo)); in destroy_loop_vec_info()
927 VEC_free (gimple, heap, LOOP_VINFO_REDUCTIONS (loop_vinfo)); in destroy_loop_vec_info()
928 VEC_free (gimple, heap, LOOP_VINFO_REDUCTION_CHAINS (loop_vinfo)); in destroy_loop_vec_info()
930 if (LOOP_VINFO_PEELING_HTAB (loop_vinfo)) in destroy_loop_vec_info()
931 htab_delete (LOOP_VINFO_PEELING_HTAB (loop_vinfo)); in destroy_loop_vec_info()
933 free (loop_vinfo); in destroy_loop_vec_info()
949 loop_vec_info loop_vinfo; in vect_analyze_loop_1() local
956 loop_vinfo = vect_analyze_loop_form (loop); in vect_analyze_loop_1()
957 if (!loop_vinfo) in vect_analyze_loop_1()
964 return loop_vinfo; in vect_analyze_loop_1()
979 loop_vec_info loop_vinfo; in vect_analyze_loop_form() local
1189 loop_vinfo = new_loop_vec_info (loop); in vect_analyze_loop_form()
1190 LOOP_VINFO_NITERS (loop_vinfo) = number_of_iterations; in vect_analyze_loop_form()
1191 LOOP_VINFO_NITERS_UNCHANGED (loop_vinfo) = number_of_iterations; in vect_analyze_loop_form()
1200 loop->aux = loop_vinfo; in vect_analyze_loop_form()
1201 return loop_vinfo; in vect_analyze_loop_form()
1223 vect_analyze_loop_operations (loop_vec_info loop_vinfo, bool slp) in vect_analyze_loop_operations() argument
1225 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_analyze_loop_operations()
1226 basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); in vect_analyze_loop_operations()
1242 gcc_assert (LOOP_VINFO_VECT_FACTOR (loop_vinfo)); in vect_analyze_loop_operations()
1243 vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo); in vect_analyze_loop_operations()
1268 vectorization_factor = LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo); in vect_analyze_loop_operations()
1271 LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo)); in vect_analyze_loop_operations()
1273 LOOP_VINFO_VECT_FACTOR (loop_vinfo) = vectorization_factor; in vect_analyze_loop_operations()
1406 if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_analyze_loop_operations()
1410 vectorization_factor, LOOP_VINFO_INT_NITERS (loop_vinfo)); in vect_analyze_loop_operations()
1412 if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_analyze_loop_operations()
1413 && (LOOP_VINFO_INT_NITERS (loop_vinfo) < vectorization_factor)) in vect_analyze_loop_operations()
1427 vect_update_slp_costs_according_to_vf (loop_vinfo); in vect_analyze_loop_operations()
1429 min_profitable_iters = vect_estimate_min_profitable_iters (loop_vinfo); in vect_analyze_loop_operations()
1430 LOOP_VINFO_COST_MODEL_MIN_ITERS (loop_vinfo) = min_profitable_iters; in vect_analyze_loop_operations()
1454 if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_analyze_loop_operations()
1455 && LOOP_VINFO_INT_NITERS (loop_vinfo) <= th) in vect_analyze_loop_operations()
1467 if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_analyze_loop_operations()
1468 || LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0 in vect_analyze_loop_operations()
1469 || LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo)) in vect_analyze_loop_operations()
1473 if (!vect_can_advance_ivs_p (loop_vinfo)) in vect_analyze_loop_operations()
1499 vect_analyze_loop_2 (loop_vec_info loop_vinfo) in vect_analyze_loop_2() argument
1512 ok = vect_analyze_data_refs (loop_vinfo, NULL, &min_vf); in vect_analyze_loop_2()
1523 vect_analyze_scalar_cycles (loop_vinfo); in vect_analyze_loop_2()
1525 vect_pattern_recog (loop_vinfo); in vect_analyze_loop_2()
1529 ok = vect_mark_stmts_to_be_vectorized (loop_vinfo); in vect_analyze_loop_2()
1542 ok = vect_analyze_data_ref_dependences (loop_vinfo, NULL, &max_vf); in vect_analyze_loop_2()
1551 ok = vect_determine_vectorization_factor (loop_vinfo); in vect_analyze_loop_2()
1558 if (max_vf < LOOP_VINFO_VECT_FACTOR (loop_vinfo)) in vect_analyze_loop_2()
1568 ok = vect_analyze_data_refs_alignment (loop_vinfo, NULL); in vect_analyze_loop_2()
1579 ok = vect_analyze_data_ref_accesses (loop_vinfo, NULL); in vect_analyze_loop_2()
1590 ok = vect_prune_runtime_alias_test_list (loop_vinfo); in vect_analyze_loop_2()
1602 ok = vect_enhance_data_refs_alignment (loop_vinfo); in vect_analyze_loop_2()
1611 ok = vect_analyze_slp (loop_vinfo, NULL); in vect_analyze_loop_2()
1615 slp = vect_make_slp_decision (loop_vinfo); in vect_analyze_loop_2()
1618 vect_detect_hybrid_slp (loop_vinfo); in vect_analyze_loop_2()
1626 ok = vect_analyze_loop_operations (loop_vinfo, slp); in vect_analyze_loop_2()
1645 loop_vec_info loop_vinfo; in vect_analyze_loop() local
1667 loop_vinfo = vect_analyze_loop_form (loop); in vect_analyze_loop()
1668 if (!loop_vinfo) in vect_analyze_loop()
1675 if (vect_analyze_loop_2 (loop_vinfo)) in vect_analyze_loop()
1677 LOOP_VINFO_VECTORIZABLE_P (loop_vinfo) = 1; in vect_analyze_loop()
1679 return loop_vinfo; in vect_analyze_loop()
1682 destroy_loop_vec_info (loop_vinfo, true); in vect_analyze_loop()
2395 vect_get_single_scalar_iteration_cost (loop_vec_info loop_vinfo) in vect_get_single_scalar_iteration_cost() argument
2397 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_get_single_scalar_iteration_cost()
2398 basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); in vect_get_single_scalar_iteration_cost()
2459 vect_get_known_peeling_cost (loop_vec_info loop_vinfo, int peel_iters_prologue, in vect_get_known_peeling_cost() argument
2464 int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo); in vect_get_known_peeling_cost()
2466 if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)) in vect_get_known_peeling_cost()
2480 int niters = LOOP_VINFO_INT_NITERS (loop_vinfo); in vect_get_known_peeling_cost()
2486 if (LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo) && !*peel_iters_epilogue) in vect_get_known_peeling_cost()
2505 vect_estimate_min_profitable_iters (loop_vec_info loop_vinfo) in vect_estimate_min_profitable_iters() argument
2515 int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo); in vect_estimate_min_profitable_iters()
2516 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_estimate_min_profitable_iters()
2517 basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); in vect_estimate_min_profitable_iters()
2519 int npeel = LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo); in vect_estimate_min_profitable_iters()
2534 if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo)) in vect_estimate_min_profitable_iters()
2538 VEC_length (gimple, LOOP_VINFO_MAY_MISALIGN_STMTS (loop_vinfo)); in vect_estimate_min_profitable_iters()
2545 if (LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) in vect_estimate_min_profitable_iters()
2549 VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo)); in vect_estimate_min_profitable_iters()
2555 if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo) in vect_estimate_min_profitable_iters()
2556 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) in vect_estimate_min_profitable_iters()
2628 scalar_single_iter_cost = vect_get_single_scalar_iteration_cost (loop_vinfo); in vect_estimate_min_profitable_iters()
2667 vec_outside_cost += vect_get_known_peeling_cost (loop_vinfo, in vect_estimate_min_profitable_iters()
2725 if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_estimate_min_profitable_iters()
2726 || LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo) in vect_estimate_min_profitable_iters()
2727 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) in vect_estimate_min_profitable_iters()
2730 if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo) in vect_estimate_min_profitable_iters()
2731 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) in vect_estimate_min_profitable_iters()
2736 if (LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0) in vect_estimate_min_profitable_iters()
2746 slp_instances = LOOP_VINFO_SLP_INSTANCES (loop_vinfo); in vect_estimate_min_profitable_iters()
2846 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); in vect_model_reduction_cost() local
2847 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_model_reduction_cost()
2982 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo); in get_initial_def_for_induction() local
2983 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in get_initial_def_for_induction()
2997 int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo); in get_initial_def_for_induction()
3139 new_stmt_vec_info (induction_phi, loop_vinfo, NULL)); in get_initial_def_for_induction()
3148 set_vinfo_for_stmt (new_stmt, new_stmt_vec_info (new_stmt, loop_vinfo, in get_initial_def_for_induction()
3203 new_stmt_vec_info (new_stmt, loop_vinfo, NULL)); in get_initial_def_for_induction()
3260 new_stmt_vec_info (new_stmt, loop_vinfo, NULL)); in get_initial_def_for_induction()
3317 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo); in get_initial_def_for_reduction() local
3318 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in get_initial_def_for_reduction()
3519 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); in vect_create_epilog_for_reduction() local
3520 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo), *outer_loop = NULL; in vect_create_epilog_for_reduction()
3693 set_vinfo_for_stmt (phi, new_stmt_vec_info (phi, loop_vinfo, NULL)); in vect_create_epilog_for_reduction()
3721 loop_vinfo, NULL)); in vect_create_epilog_for_reduction()
3733 loop_vinfo, NULL)); in vect_create_epilog_for_reduction()
4073 new_stmt_vec_info (epilog_stmt, loop_vinfo, in vect_create_epilog_for_reduction()
4386 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); in vectorizable_reduction() local
4387 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vectorizable_reduction()
4542 is_simple_use = vect_is_simple_use_1 (ops[i], stmt, loop_vinfo, NULL, in vectorizable_reduction()
4563 is_simple_use = vect_is_simple_use_1 (ops[i], stmt, loop_vinfo, NULL, in vectorizable_reduction()
4585 gcc_assert (orig_stmt == vect_is_simple_reduction (loop_vinfo, in vectorizable_reduction()
4591 gimple tmp = vect_is_simple_reduction (loop_vinfo, reduc_def_stmt, in vectorizable_reduction()
4605 ncopies = (LOOP_VINFO_VECT_FACTOR (loop_vinfo) in vectorizable_reduction()
4642 || LOOP_VINFO_VECT_FACTOR (loop_vinfo) in vectorizable_reduction()
4652 && LOOP_VINFO_VECT_FACTOR (loop_vinfo) in vectorizable_reduction()
4874 new_stmt_vec_info (new_phi, loop_vinfo, in vectorizable_reduction()
4927 vect_is_simple_use (ops[!reduc_index], stmt, loop_vinfo, NULL, in vectorizable_reduction()
4934 vect_is_simple_use (op1, stmt, loop_vinfo, NULL, &dummy_stmt, in vectorizable_reduction()
5066 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); in vectorizable_induction() local
5067 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vectorizable_induction()
5069 int ncopies = LOOP_VINFO_VECT_FACTOR (loop_vinfo) / nunits; in vectorizable_induction()
5157 loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_info); in vectorizable_live_operation() local
5158 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vectorizable_live_operation()
5200 && !vect_is_simple_use (op, stmt, loop_vinfo, NULL, &def_stmt, &def, in vectorizable_live_operation()
5261 vect_transform_loop (loop_vec_info loop_vinfo) in vect_transform_loop() argument
5263 struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); in vect_transform_loop()
5264 basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); in vect_transform_loop()
5269 int vectorization_factor = LOOP_VINFO_VECT_FACTOR (loop_vinfo); in vect_transform_loop()
5287 if (LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo)) in vect_transform_loop()
5288 vect_do_peeling_for_alignment (loop_vinfo); in vect_transform_loop()
5291 = (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_transform_loop()
5292 || (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo) in vect_transform_loop()
5293 && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0) in vect_transform_loop()
5294 || LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo)); in vect_transform_loop()
5296 if (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT (loop_vinfo) in vect_transform_loop()
5297 || LOOP_REQUIRES_VERSIONING_FOR_ALIAS (loop_vinfo)) in vect_transform_loop()
5298 vect_loop_versioning (loop_vinfo, in vect_transform_loop()
5311 vect_do_peeling_for_loop_bound (loop_vinfo, &ratio, in vect_transform_loop()
5314 ratio = build_int_cst (TREE_TYPE (LOOP_VINFO_NITERS (loop_vinfo)), in vect_transform_loop()
5315 LOOP_VINFO_INT_NITERS (loop_vinfo) / vectorization_factor); in vect_transform_loop()
5490 vect_schedule_slp (loop_vinfo, NULL); in vect_transform_loop()