GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | affine_iv |
class | tree_niter_desc |
Functions | |
bool | for_each_index (tree *, bool(*)(tree, tree *, void *), void *) |
char * | get_lsm_tmp_name (tree ref, unsigned n, const char *suffix=NULL) |
unsigned | tree_num_loop_insns (class loop *, struct eni_weights *) |
class loop * | loop_containing_stmt (gimple *stmt) |
Calls CBCK for each index in memory reference ADDR_P. There are two kinds situations handled; in each of these cases, the memory reference and DATA are passed to the callback: Access to an array: ARRAY_{RANGE_}REF (base, index). In this case we also pass the pointer to the index to the callback. Pointer dereference: INDIRECT_REF (addr). In this case we also pass the pointer to addr to the callback. If the callback returns false, the whole search stops and false is returned. Otherwise the function returns true after traversing through the whole reference *ADDR_P.
References CONSTANT_CLASS_P, DECL_P, gcc_assert, gcc_unreachable, is_gimple_min_invariant(), TMR_BASE, TMR_INDEX, TMR_INDEX2, TREE_CODE, and TREE_OPERAND.
Referenced by analyze_ref(), can_sm_ref_p(), dse_classify_store(), execute_sm(), find_interesting_uses_address(), infer_loop_bounds_from_ref(), propagate_with_phi(), and ref_within_array_bound().
|
extern |
Determines name for temporary variable that replaces REF. The name is accumulated into the lsm_tmp_name variable. N is added to the name of the temporary.
References gen_lsm_tmp_name(), lsm_tmp_name, lsm_tmp_name_add(), lsm_tmp_name_length, and NULL.
Referenced by execute_sm(), execute_sm_if_changed_flag_set(), and predcom_tmp_var().
Returns the loop of the statement STMT.
References gimple_bb(), basic_block_def::loop_father, and NULL.
Referenced by analyze_evolution_in_loop(), analyze_function_body(), analyze_initial_condition(), chrec_contains_symbols_defined_in_loop(), compute_invariantness(), constant_after_peeling(), determine_loop_nest_reuse(), final_range_test_p(), find_data_references_in_stmt(), find_givs_in_stmt_scev(), scev_dfs::follow_ssa_edge_expr(), scev_dfs::follow_ssa_edge_inner_loop_phi(), get_base_for_alignment_1(), get_cst_init_from_scev(), idx_analyze_ref(), idx_infer_loop_bounds(), infer_loop_bounds_from_pointer_arith(), initialize_data_dependence_relation(), instantiate_scev_name(), interpret_loop_phi(), is_comparison_with_loop_invariant_p(), linearize_expr(), linearize_expr_tree(), loop_closed_phi_def(), loop_phi_node_p(), maybe_optimize_range_tests(), number_of_iterations_exit_assumptions(), fold_using_range::range_of_phi(), reassociate_bb(), ref_within_array_bound(), rewrite_bittest(), scev_analyzable_p(), should_break_up_subtract(), split_at_bb_p(), vect_find_stmt_data_reference(), and vectorizable_simd_clone_call().
|
extern |
Computes an estimated number of insns in LOOP, weighted by WEIGHTS.
References estimate_num_insns(), free(), get_loop_body(), gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_stmt(), i, and loop::num_nodes.
Referenced by can_unroll_loop_p(), and loop_prefetch_arrays().