Home | History | Annotate | Download | only in gcc

Lines Matching refs:pbb

51 /* Return an isl identifier for the polyhedral basic block PBB.  */
54 isl_id_for_pbb (scop_p s, poly_bb_p pbb)
57 snprintf (name, sizeof (name), "S_%d", pbb_index (pbb));
58 return isl_id_alloc (s->isl_context, name, pbb);
314 /* Returns a linear expression for tree T evaluated in PBB. */
317 create_pw_aff_from_tree (poly_bb_p pbb, loop_p loop, tree t)
319 scop_p scop = PBB_SCOP (pbb);
326 return extract_affine (scop, t, isl_set_get_space (pbb->domain));
329 /* Add conditional statement STMT to pbb. CODE is used as the comparison
334 add_condition_to_pbb (poly_bb_p pbb, gcond *stmt, enum tree_code code)
337 isl_pw_aff *lhs = create_pw_aff_from_tree (pbb, loop, gimple_cond_lhs (stmt));
338 isl_pw_aff *rhs = create_pw_aff_from_tree (pbb, loop, gimple_cond_rhs (stmt));
372 cond = isl_set_set_tuple_id (cond, isl_set_get_tuple_id (pbb->domain));
373 pbb->domain = isl_set_coalesce (isl_set_intersect (pbb->domain, cond));
376 /* Add conditions to the domain of PBB. */
379 add_conditions_to_domain (poly_bb_p pbb)
383 gimple_poly_bb_p gbb = PBB_BLACK_BOX (pbb);
404 add_condition_to_pbb (pbb, cond_stmt, code);
501 PBB is the poly_bb_p that contains the data reference DR. */
507 poly_bb_p pbb = dri.pbb;
509 scop_p scop = PBB_SCOP (pbb);
613 poly_bb_p pbb = dri.pbb;
615 scop_p scop = PBB_SCOP (pbb);
619 isl_space *dc = isl_set_get_space (pbb->domain);
642 new_poly_dr (pbb, DR_STMT (dr), DR_IS_READ (dr) ? PDR_READ : PDR_WRITE,
647 build_poly_sr_1 (poly_bb_p pbb, gimple *stmt, tree var, enum poly_dr_type kind,
650 scop_p scop = PBB_SCOP (pbb);
664 new_poly_dr (pbb, stmt, kind, isl_map_add_constraint (acc, c),
668 /* Record all cross basic block scalar variables in PBB. */
671 build_poly_sr (poly_bb_p pbb)
673 scop_p scop = PBB_SCOP (pbb);
674 gimple_poly_bb_p gbb = PBB_BLACK_BOX (pbb);
678 isl_space *dc = isl_set_get_space (pbb->domain);
691 build_poly_sr_1 (pbb, SSA_NAME_DEF_STMT (var), var, PDR_WRITE,
696 build_poly_sr_1 (pbb, use->first, use->second, PDR_READ, isl_map_copy (acc),
713 poly_bb_p pbb;
714 FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
715 build_poly_sr (pbb);
837 /* Builds the original iteration domains for each pbb in the SCOP. */
849 poly_bb_p pbb;
850 FOR_EACH_VEC_ELT_FROM (scop->pbbs, i, pbb, index)
852 loop_p loop = pbb_loop (pbb);
855 pbb->iterators = isl_set_copy (domain);
856 pbb->domain = isl_set_copy (domain);
857 pbb->domain = isl_set_set_tuple_id (pbb->domain,
858 isl_id_for_pbb (scop, pbb));
859 add_conditions_to_domain (pbb);
864 pbb_index (pbb));
927 /* Return the index of any pbb belonging to loop or a subloop of A. */
934 poly_bb_p pbb;
935 FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
936 if (nested_in (pbb_loop (pbb), a)
938 || last_depth > (int) loop_depth (pbb_loop (pbb))))
941 last_depth = loop_depth (pbb_loop (pbb));
946 /* Return the index of any pbb belonging to loop or a subloop of A. */
952 poly_bb_p pbb;
953 FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
954 if (pbb_loop (pbb) == a)
1034 poly_bb_p pbb = outermost_pbb_in (loop, scop);
1035 isl_set *iterators = pbb->iterators;
1052 loop_p ploop = pbb_loop (pbb);
1074 /* Build schedule for the pbb at INDEX. */
1079 poly_bb_p pbb = scop->pbbs[*index];
1081 isl_set *domain = isl_set_copy (pbb->domain);
1088 /* Build the schedule of the loop containing the SCOP pbb at INDEX. */
1154 /* Build schedule for the full loop nest containing the pbb at INDEX. When
1156 surrounding the pbb. When CONTEXT_LOOP is non null, only build the maximal loop
1178 poly_bb_p pbb = scop->pbbs[i];
1180 if (!loop_in_sese_p (pbb_loop (pbb), scop->scop_info->region))