|
GCC Middle and Back End API Reference
|
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "tree.h"#include "gimple.h"#include "tree-pass.h"#include "memmodel.h"#include "tm_p.h"#include "fold-const.h"#include "gimple-iterator.h"#include "gimple-range.h"#include "tree-ssa-loop-ivopts.h"#include "tree-ssa-loop-manip.h"#include "tree-ssa-loop-niter.h"#include "tree-ssa-loop.h"#include "cfgloop.h"#include "tree-inline.h"#include "tree-scalar-evolution.h"#include "omp-general.h"#include "diagnostic-core.h"#include "stringpool.h"#include "attribs.h"
Macros | |
| #define | MAX_LSM_NAME_LENGTH 40 |
Variables | |
| static char | lsm_tmp_name [MAX_LSM_NAME_LENGTH+1] |
| static int | lsm_tmp_name_length |
| #define MAX_LSM_NAME_LENGTH 40 |
The name and the length of the currently generated variable for lsm.
Referenced by lsm_tmp_name_add().
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, for_each_index(), 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(), contains_ssa_ref_p(), dse_classify_store(), execute_sm(), find_interesting_uses_address(), for_each_index(), infer_loop_bounds_from_ref(), propagate_with_phi(), and ref_within_array_bound().
Gate for loop pass group. The group is controlled by -ftree-loop-optimize but we also avoid running it when the IL doesn't contain any loop.
References gate_loop(), loops_for_fn(), and number_of_loops().
Referenced by gate_loop().
Gate for oacc kernels pass group.
References cfun, function::decl, DECL_ATTRIBUTES, gate_oacc_kernels(), loop::in_oacc_kernels_region, and lookup_attribute().
Referenced by gate_oacc_kernels().
|
static |
Stores the name for temporary variable that replaces REF to lsm_tmp_name.
References gen_lsm_tmp_name(), get_name(), lsm_tmp_name_add(), TREE_CODE, and TREE_OPERAND.
Referenced by gen_lsm_tmp_name(), and get_lsm_tmp_name().
| char * get_lsm_tmp_name | ( | tree | ref, |
| unsigned | n, | ||
| const char * | suffix ) |
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(), get_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(), get_lsm_tmp_name(), and predcom_tmp_var().
|
static |
Adds S to lsm_tmp_name.
References lsm_tmp_name, lsm_tmp_name_add(), lsm_tmp_name_length, and MAX_LSM_NAME_LENGTH.
Referenced by gen_lsm_tmp_name(), get_lsm_tmp_name(), and lsm_tmp_name_add().
| gimple_opt_pass * make_pass_fix_loops | ( | gcc::context * | ctxt | ) |
References make_pass_fix_loops().
Referenced by make_pass_early_tree_profile(), and make_pass_fix_loops().
| simple_ipa_opt_pass * make_pass_ipa_oacc | ( | gcc::context * | ctxt | ) |
References make_pass_ipa_oacc().
Referenced by make_pass_check_data_deps(), and make_pass_ipa_oacc().
| simple_ipa_opt_pass * make_pass_ipa_oacc_kernels | ( | gcc::context * | ctxt | ) |
References make_pass_ipa_oacc_kernels().
Referenced by make_pass_check_data_deps(), and make_pass_ipa_oacc_kernels().
| gimple_opt_pass * make_pass_iv_optimize | ( | gcc::context * | ctxt | ) |
References make_pass_iv_optimize().
Referenced by make_pass_empty_loop(), and make_pass_iv_optimize().
| gimple_opt_pass * make_pass_oacc_kernels | ( | gcc::context * | ctxt | ) |
References make_pass_oacc_kernels().
Referenced by make_pass_check_data_deps(), and make_pass_oacc_kernels().
| gimple_opt_pass * make_pass_scev_cprop | ( | gcc::context * | ctxt | ) |
References make_pass_scev_cprop().
Referenced by make_pass_early_tree_profile(), and make_pass_scev_cprop().
| gimple_opt_pass * make_pass_tree_loop | ( | gcc::context * | ctxt | ) |
References make_pass_tree_loop().
Referenced by make_pass_early_tree_profile(), and make_pass_tree_loop().
| gimple_opt_pass * make_pass_tree_loop_done | ( | gcc::context * | ctxt | ) |
References make_pass_tree_loop_done().
Referenced by make_pass_empty_loop(), and make_pass_tree_loop_done().
| gimple_opt_pass * make_pass_tree_loop_init | ( | gcc::context * | ctxt | ) |
References make_pass_tree_loop_init().
Referenced by make_pass_early_tree_profile(), and make_pass_tree_loop_init().
| gimple_opt_pass * make_pass_tree_no_loop | ( | gcc::context * | ctxt | ) |
References make_pass_tree_no_loop().
Referenced by make_pass_early_tree_profile(), and make_pass_tree_no_loop().
| unsigned tree_num_loop_insns | ( | class loop * | loop, |
| eni_weights * | weights ) |
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, loop::num_nodes, and tree_num_loop_insns().
Referenced by can_unroll_loop_p(), loop_prefetch_arrays(), and tree_num_loop_insns().
|
static |
Loop optimizer finalization.
References cfun, free_numbers_of_iterations_estimates(), loop_optimizer_finalize(), scev_finalize(), and tree_ssa_loop_done().
Referenced by tree_ssa_loop_done().
|
static |
Referenced by get_lsm_tmp_name(), and lsm_tmp_name_add().
|
static |
Referenced by get_lsm_tmp_name(), and lsm_tmp_name_add().