Go to the source code of this file.
Functions |
sese | new_sese (edge, edge) |
void | free_sese (sese) |
void | sese_insert_phis_for_liveouts (sese, basic_block, edge, edge) |
void | build_sese_loop_nests (sese) |
edge | copy_bb_and_scalar_dependences (basic_block, sese, edge, vec< tree >, bool *) |
struct loop * | outermost_loop_in_sese (sese, basic_block) |
tree | scalar_evolution_in_region (sese, loop_p, tree) |
static bool | sese_contains_loop () |
static unsigned | sese_nb_params () |
static bool | bb_in_region () |
static bool | bb_in_sese_p () |
static bool | stmt_in_sese_p () |
static bool | defined_in_sese_p () |
static bool | loop_in_sese_p () |
static unsigned int | sese_loop_depth () |
static sese | split_region_for_bb () |
static basic_block | block_before_sese () |
void | if_region_set_false_region (ifsese, sese) |
ifsese | move_sese_in_condition (sese) |
edge | get_true_edge_from_guard_bb (basic_block) |
edge | get_false_edge_from_guard_bb (basic_block) |
void | set_ifsese_condition (ifsese, tree) |
static edge | if_region_entry () |
static edge | if_region_exit () |
static basic_block | if_region_get_condition_block () |
hashval_t | rename_map_elt_info (const void *) |
int | eq_rename_map_elts (const void *, const void *) |
static rename_map_elt | new_rename_map_elt () |
static void | recompute_all_dominators () |
static struct loop * | gbb_loop () |
static loop_p | gbb_loop_at_index () |
static int | nb_common_loops () |
static bool | scev_analyzable_p () |
Typedef Documentation
A single entry single exit specialized for conditions.
Structure containing the mapping between the old names and the new
names used after block copy in the new loop context.
A Single Entry, Single Exit region is a part of the CFG delimited
by two edges.
Function Documentation
static bool bb_in_region |
( |
| ) |
|
|
inlinestatic |
static bool bb_in_sese_p |
( |
| ) |
|
|
inlinestatic |
Checks whether BB is contained in the region delimited by ENTRY and
EXIT blocks.
References bb_in_region().
Referenced by analyze_drs_in_stmts(), build_scop_bbs_1(), build_sese_conditions_after(), build_sese_conditions_before(), build_sese_loop_nests(), dot_all_scops_1(), handle_scalar_deps_crossing_scop_limits(), insert_out_of_ssa_copy_on_edge(), loop_in_sese_p(), print_graphite_scop_statistics(), propagate_expr_outside_region(), rewrite_cross_bb_scalar_deps_out_of_ssa(), rewrite_reductions_out_of_ssa(), sese_bad_liveouts_use(), sese_build_liveouts_use(), and stmt_in_sese_p().
void build_sese_loop_nests |
( |
sese |
| ) |
|
static bool defined_in_sese_p |
( |
| ) |
|
|
inlinestatic |
int eq_rename_map_elts |
( |
const void * |
, |
|
|
const void * |
|
|
) |
| |
static struct loop* gbb_loop |
( |
| ) |
|
|
staticread |
static loop_p gbb_loop_at_index |
( |
| ) |
|
|
inlinestatic |
static edge if_region_entry |
( |
| ) |
|
|
inlinestatic |
static edge if_region_exit |
( |
| ) |
|
|
inlinestatic |
static bool loop_in_sese_p |
( |
| ) |
|
|
inlinestatic |
Returns true when LOOP is in REGION.
References bb_in_sese_p(), loop::header, and loop::latch.
Referenced by analyze_drs_in_stmts(), build_loop_iteration_domains(), build_scop_iteration_domain(), limit_scops(), nb_pbbs_in_loops(), outermost_loop_in_sese(), outermost_loop_in_sese_1(), print_graphite_scop_statistics(), rewrite_close_phi_out_of_ssa(), rewrite_commutative_reductions_out_of_ssa(), scalar_evolution_in_region(), scop_ivs_can_be_represented(), scop_to_lst(), sese_loop_depth(), and try_generate_gimple_bb().
static int nb_common_loops |
( |
| ) |
|
|
inlinestatic |
static void recompute_all_dominators |
( |
| ) |
|
|
inlinestatic |
hashval_t rename_map_elt_info |
( |
const void * |
| ) |
|
static bool scev_analyzable_p |
( |
| ) |
|
|
inlinestatic |
static bool sese_contains_loop |
( |
| ) |
|
|
inlinestatic |
Insert in the block BB phi nodes for variables defined in REGION
and used outside the REGION. The code generation moves REGION in
the else clause of an "if (1)" and generates code in the then
clause that is at this point empty:
| if (1)
| empty;
| else
| REGION;
References sese_add_exit_phis_edge(), sese_build_liveouts(), and update_ssa().
Referenced by gloog().
static unsigned int sese_loop_depth |
( |
| ) |
|
|
inlinestatic |
Returns the loop depth of LOOP in REGION. The loop depth
is the same as the normal loop depth, but limited by a region.
Example:
loop_0
loop_1
{
S0
<- region start
S1
loop_2
S2
S3
<- region end
}
loop_0 does not exist in the region -> invalid
loop_1 exists, but is not completely contained in the region -> depth 0
loop_2 is completely contained -> depth 1
References loop_in_sese_p(), and loop_outer().
Referenced by extract_affine_chrec(), gbb_loop_at_index(), and nb_common_loops().
static unsigned sese_nb_params |
( |
| ) |
|
|
inlinestatic |
static sese split_region_for_bb |
( |
| ) |
|
|
inlinestatic |
Splits BB to make a single entry single exit region.
References gsi_last_bb(), gsi_prev(), gsi_stmt(), new_sese(), single_pred_edge(), single_pred_p(), single_succ(), single_succ_edge(), single_succ_p(), split_block(), and split_block_after_labels().
static bool stmt_in_sese_p |
( |
| ) |
|
|
inlinestatic |