|
Data Structures |
| struct | htab_iterator |
| struct | ptr_info_def |
| struct | tree_ann_common_d |
| struct | subvar |
| struct | var_ann_d |
| struct | function_ann_d |
| struct | immediate_use_iterator_d |
| struct | stmt_ann_d |
| union | tree_ann_d |
| struct | edge_prediction |
| struct | int_tree_map |
| struct | referenced_var_iterator |
| struct | safe_referenced_var_iterator |
| struct | block_stmt_iterator |
| struct | omp_region |
| struct | affine_iv |
| struct | tree_niter_desc |
| struct | affine_tree_combination |
| struct | mem_address |
| struct | fieldoff |
Defines |
| #define | _TREE_FLOW_H 1 |
| #define | FOR_EACH_HTAB_ELEMENT(HTAB, RESULT, TYPE, ITER) |
| #define | FOR_EACH_IMM_USE_FAST(DEST, ITER, SSAVAR) |
| #define | FOR_EACH_IMM_USE_STMT(STMT, ITER, SSAVAR) |
| #define | BREAK_FROM_IMM_USE_STMT(ITER) |
| #define | FOR_EACH_IMM_USE_ON_STMT(DEST, ITER) |
| #define | FOR_EACH_REFERENCED_VAR(VAR, ITER) |
| #define | FOR_EACH_REFERENCED_VAR_SAFE(VAR, VEC, ITER) |
| #define | num_referenced_vars htab_elements (referenced_vars) |
| #define | referenced_var(i) referenced_var_lookup (i) |
| #define | num_ssa_names (VEC_length (tree, ssa_names)) |
| #define | ssa_name(i) (VEC_index (tree, ssa_names, (i))) |
| #define | SCALE(x) |
| #define | LABEL(x) ((x) < 1024*10 ? 'b' : ((x) < 1024*1024*10 ? 'k' : 'M')) |
| #define | PERCENT(x, y) ((float)(x) * 100.0 / (float)(y)) |
| #define | PENDING_STMT(e) ((e)->insns.t) |
| #define | label_to_block(t) (label_to_block_fn (cfun, t)) |
| #define | MAX_AFF_ELTS 8 |
Typedefs |
| typedef subvar * | subvar_t |
| typedef immediate_use_iterator_d | imm_use_iterator |
| typedef tree_ann_d * | tree_ann_t |
| typedef var_ann_d * | var_ann_t |
| typedef function_ann_d * | function_ann_t |
| typedef stmt_ann_d * | stmt_ann_t |
| typedef tree_ann_common_d * | tree_ann_common_t |
| typedef bool(* | walk_use_def_chains_fn )(tree, tree, void *) |
| typedef fieldoff | fieldoff_s |
Enumerations |
| enum | tree_ann_type { TREE_ANN_COMMON,
VAR_ANN,
FUNCTION_ANN,
STMT_ANN
} |
| enum | need_phi_state { NEED_PHI_STATE_UNKNOWN,
NEED_PHI_STATE_NO,
NEED_PHI_STATE_MAYBE
} |
| enum | bsi_iterator_update {
BSI_NEW_STMT,
BSI_SAME_STMT,
BSI_CHAIN_START,
BSI_CHAIN_END,
BSI_CONTINUE_LINKING
} |
| enum | ev_direction { EV_DIR_GROWS,
EV_DIR_DECREASES,
EV_DIR_UNKNOWN
} |
| enum | move_pos { MOVE_IMPOSSIBLE,
MOVE_PRESERVE_EXECUTION,
MOVE_POSSIBLE
} |
| enum | escape_type {
NO_ESCAPE = 0,
ESCAPE_STORED_IN_GLOBAL = 1 << 1,
ESCAPE_TO_ASM = 1 << 2,
ESCAPE_TO_CALL = 1 << 3,
ESCAPE_BAD_CAST = 1 << 4,
ESCAPE_TO_RETURN = 1 << 5,
ESCAPE_TO_PURE_CONST = 1 << 6,
ESCAPE_IS_GLOBAL = 1 << 7,
ESCAPE_IS_PARM = 1 << 8,
ESCAPE_UNKNOWN = 1 << 9
} |
Functions |
| | VEC (tree, gc)*modified_noreturn_calls |
| static enum tree_ann_type | ann_type (tree_ann_t) |
| static basic_block | bb_for_stmt (tree) |
| void | set_bb_for_stmt (tree, basic_block) |
| static bool | noreturn_call_p (tree) |
| static void | update_stmt (tree) |
| static bool | stmt_modified_p (tree) |
| static int | get_lineno (tree) |
| static const char * | get_filename (tree) |
| static bool | is_exec_stmt (tree) |
| static bool | is_label_stmt (tree) |
| static bitmap | addresses_taken (tree) |
| static tree | phi_nodes (basic_block) |
| static void | set_phi_nodes (basic_block, tree) |
| unsigned int | int_tree_map_hash (const void *) |
| int | int_tree_map_eq (const void *, const void *) |
| tree | referenced_var_lookup (unsigned int) |
| static bool | bsi_end_p (block_stmt_iterator) |
| static void | bsi_next (block_stmt_iterator *) |
| static void | bsi_prev (block_stmt_iterator *) |
| static tree | bsi_stmt (block_stmt_iterator) |
| static tree * | bsi_stmt_ptr (block_stmt_iterator) |
| void | bsi_remove (block_stmt_iterator *, bool) |
| void | bsi_move_before (block_stmt_iterator *, block_stmt_iterator *) |
| void | bsi_move_after (block_stmt_iterator *, block_stmt_iterator *) |
| void | bsi_move_to_bb_end (block_stmt_iterator *, basic_block) |
| void | bsi_insert_before (block_stmt_iterator *, tree, enum bsi_iterator_update) |
| void | bsi_insert_after (block_stmt_iterator *, tree, enum bsi_iterator_update) |
| void | bsi_replace (const block_stmt_iterator *, tree, bool) |
| omp_region * | new_omp_region (basic_block, enum tree_code, struct omp_region *) |
| void | free_omp_regions (void) |
| void | delete_tree_cfg_annotations (void) |
| void | disband_implicit_edges (void) |
| bool | stmt_ends_bb_p (tree) |
| bool | is_ctrl_stmt (tree) |
| bool | is_ctrl_altering_stmt (tree) |
| bool | computed_goto_p (tree) |
| bool | simple_goto_p (tree) |
| basic_block | single_noncomplex_succ (basic_block bb) |
| void | tree_dump_bb (basic_block, FILE *, int) |
| void | debug_tree_bb (basic_block) |
| basic_block | debug_tree_bb_n (int) |
| void | dump_tree_cfg (FILE *, int) |
| void | debug_tree_cfg (int) |
| void | dump_cfg_stats (FILE *) |
| void | debug_cfg_stats (void) |
| void | debug_loop_ir (void) |
| void | print_loop_ir (FILE *) |
| void | cleanup_dead_labels (void) |
| void | group_case_labels (void) |
| tree | first_stmt (basic_block) |
| tree | last_stmt (basic_block) |
| tree * | last_stmt_ptr (basic_block) |
| tree | last_and_only_stmt (basic_block) |
| edge | find_taken_edge (basic_block, tree) |
| basic_block | label_to_block_fn (struct function *, tree) |
| void | bsi_insert_on_edge (edge, tree) |
| basic_block | bsi_insert_on_edge_immediate (edge, tree) |
| void | bsi_commit_one_edge_insert (edge, basic_block *) |
| void | bsi_commit_edge_inserts (void) |
| void | notice_special_calls (tree) |
| void | clear_special_calls (void) |
| void | verify_stmts (void) |
| tree | tree_block_label (basic_block) |
| void | extract_true_false_edges_from_block (basic_block, edge *, edge *) |
| bool | tree_duplicate_sese_region (edge, edge, basic_block *, unsigned, basic_block *) |
| void | add_phi_args_after_copy_bb (basic_block) |
| void | add_phi_args_after_copy (basic_block *, unsigned) |
| bool | tree_purge_dead_eh_edges (basic_block) |
| bool | tree_purge_all_dead_eh_edges (bitmap) |
| tree | gimplify_val (block_stmt_iterator *, tree, tree) |
| tree | gimplify_build1 (block_stmt_iterator *, enum tree_code, tree, tree) |
| tree | gimplify_build2 (block_stmt_iterator *, enum tree_code, tree, tree, tree) |
| tree | gimplify_build3 (block_stmt_iterator *, enum tree_code, tree, tree, tree, tree) |
| void | init_empty_tree_cfg (void) |
| void | fold_cond_expr_cond (void) |
| void | replace_uses_by (tree, tree) |
| void | start_recording_case_labels (void) |
| void | end_recording_case_labels (void) |
| basic_block | move_sese_region_to_fn (struct function *, basic_block, basic_block) |
| bool | cleanup_tree_cfg (void) |
| void | cleanup_tree_cfg_loop (void) |
| void | dump_generic_bb (FILE *, basic_block, int, int) |
| void | dump_dfa_stats (FILE *) |
| void | debug_dfa_stats (void) |
| void | debug_referenced_vars (void) |
| void | dump_referenced_vars (FILE *) |
| void | dump_variable (FILE *, tree) |
| void | debug_variable (tree) |
| void | dump_subvars_for (FILE *, tree) |
| void | debug_subvars_for (tree) |
| tree | get_virtual_var (tree) |
| void | add_referenced_var (tree) |
| void | mark_new_vars_to_rename (tree) |
| void | find_new_referenced_vars (tree *) |
| tree | make_rename_temp (tree, const char *) |
| void | set_default_def (tree, tree) |
| tree | default_def (tree) |
| tree | default_def_fn (struct function *, tree) |
| void | reserve_phi_args_for_new_edge (basic_block) |
| tree | create_phi_node (tree, basic_block) |
| void | add_phi_arg (tree, tree, edge) |
| void | remove_phi_args (edge) |
| void | remove_phi_node (tree, tree) |
| tree | phi_reverse (tree) |
| void | record_vars_into (tree, tree) |
| void | record_vars (tree) |
| bool | block_may_fallthru (tree) |
| void | dump_may_aliases_for (FILE *, tree) |
| void | debug_may_aliases_for (tree) |
| void | dump_alias_info (FILE *) |
| void | debug_alias_info (void) |
| void | dump_points_to_info (FILE *) |
| void | debug_points_to_info (void) |
| void | dump_points_to_info_for (FILE *, tree) |
| void | debug_points_to_info_for (tree) |
| bool | may_be_aliased (tree) |
| bool | is_aliased_with (tree, tree) |
| ptr_info_def * | get_ptr_info (tree) |
| void | new_type_alias (tree, tree, tree) |
| void | count_uses_and_derefs (tree, tree, unsigned *, unsigned *, bool *) |
| static tree | get_subvar_at (tree, unsigned HOST_WIDE_INT) |
| static bool | ref_contains_array_ref (tree) |
| static bool | array_ref_contains_indirect_ref (tree) |
| tree | get_ref_base_and_extent (tree, HOST_WIDE_INT *, HOST_WIDE_INT *, HOST_WIDE_INT *) |
| static bool | var_can_have_subvars (tree) |
| static bool | overlap_subvar (unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT, tree, bool *) |
| void | init_tree_ssa (void) |
| edge | ssa_redirect_edge (edge, basic_block) |
| void | flush_pending_stmts (edge) |
| bool | tree_ssa_useless_type_conversion (tree) |
| bool | tree_ssa_useless_type_conversion_1 (tree, tree) |
| void | verify_ssa (bool) |
| void | delete_tree_ssa (void) |
| void | register_new_def (tree, VEC(tree, heap)**) |
| void | walk_use_def_chains (tree, walk_use_def_chains_fn, void *, bool) |
| bool | stmt_references_memory_p (tree) |
| void | update_ssa (unsigned) |
| void | delete_update_ssa (void) |
| void | register_new_name_mapping (tree, tree) |
| tree | create_new_def_for (tree, tree, def_operand_p) |
| bool | need_ssa_update_p (void) |
| bool | name_registered_for_update_p (tree) |
| bitmap | ssa_names_to_replace (void) |
| void | release_ssa_name_after_update_ssa (tree name) |
| void | compute_global_livein (bitmap, bitmap) |
| tree | duplicate_ssa_name (tree, tree) |
| void | mark_sym_for_renaming (tree) |
| void | mark_set_for_renaming (bitmap) |
| tree | get_current_def (tree) |
| void | set_current_def (tree, tree) |
| bool | fold_stmt (tree *) |
| bool | fold_stmt_inplace (tree) |
| tree | widen_bitfield (tree, tree, tree) |
| tree | vrp_evaluate_conditional (tree, bool) |
| void | simplify_stmt_using_ranges (tree) |
| void | dump_dominator_optimization_stats (FILE *) |
| void | debug_dominator_optimization_stats (void) |
| int | loop_depth_of_name (tree) |
| void | merge_alias_info (tree, tree) |
| void | propagate_value (use_operand_p, tree) |
| void | propagate_tree_value (tree *, tree) |
| void | replace_exp (use_operand_p, tree) |
| bool | may_propagate_copy (tree, tree) |
| bool | may_propagate_copy_into_asm (tree) |
| void | vectorize_loops (struct loops *) |
| bool | vect_can_force_dr_alignment_p (tree, unsigned int) |
| tree | get_vectype_for_scalar_type (tree) |
| bool | empty_block_p (basic_block) |
| void | tree_ssa_lim (struct loops *) |
| unsigned int | tree_ssa_unswitch_loops (struct loops *) |
| unsigned int | canonicalize_induction_variables (struct loops *) |
| unsigned int | tree_unroll_loops_completely (struct loops *, bool) |
| unsigned int | tree_ssa_prefetch_arrays (struct loops *) |
| unsigned int | remove_empty_loops (struct loops *) |
| void | tree_ssa_iv_optimize (struct loops *) |
| bool | number_of_iterations_exit (struct loop *, edge, struct tree_niter_desc *niter, bool) |
| tree | find_loop_niter (struct loop *, edge *) |
| tree | loop_niter_by_eval (struct loop *, edge) |
| tree | find_loop_niter_by_eval (struct loop *, edge *) |
| void | estimate_numbers_of_iterations (struct loops *) |
| bool | scev_probably_wraps_p (tree, tree, tree, struct loop *, bool) |
| bool | convert_affine_scev (struct loop *, tree, tree *, tree *, tree, bool) |
| bool | nowrap_type_p (tree) |
| enum ev_direction | scev_direction (tree) |
| void | free_numbers_of_iterations_estimates (struct loops *) |
| void | free_numbers_of_iterations_estimates_loop (struct loop *) |
| void | rewrite_into_loop_closed_ssa (bitmap, unsigned) |
| void | verify_loop_closed_ssa (void) |
| void | loop_commit_inserts (void) |
| bool | for_each_index (tree *, bool(*)(tree, tree *, void *), void *) |
| void | create_iv (tree, tree, tree, struct loop *, block_stmt_iterator *, bool, tree *, tree *) |
| void | split_loop_exit_edge (edge) |
| unsigned | force_expr_to_var_cost (tree) |
| basic_block | bsi_insert_on_edge_immediate_loop (edge, tree) |
| void | standard_iv_increment_position (struct loop *, block_stmt_iterator *, bool *) |
| basic_block | ip_end_pos (struct loop *) |
| basic_block | ip_normal_pos (struct loop *) |
| bool | tree_duplicate_loop_to_header_edge (struct loop *, edge, struct loops *, unsigned int, sbitmap, edge, edge *, unsigned int *, int) |
| loop * | tree_ssa_loop_version (struct loops *, struct loop *, tree, basic_block *) |
| tree | expand_simple_operations (tree) |
| void | substitute_in_loop_info (struct loop *, tree, tree) |
| edge | single_dom_exit (struct loop *) |
| bool | can_unroll_loop_p (struct loop *loop, unsigned factor, struct tree_niter_desc *niter) |
| void | tree_unroll_loop (struct loops *, struct loop *, unsigned, edge, struct tree_niter_desc *) |
| bool | contains_abnormal_ssa_name_p (tree) |
| bool | potentially_threadable_block (basic_block) |
| void | thread_across_edge (tree, edge, bool, VEC(tree, heap)**, tree(*)(tree)) |
| enum move_pos | movement_possibility (tree) |
| static bool | is_call_clobbered (tree) |
| static void | mark_call_clobbered (tree, unsigned int) |
| static void | set_is_used (tree) |
| static bool | unmodifiable_var_p (tree) |
| void | make_eh_edges (tree) |
| bool | tree_could_trap_p (tree) |
| bool | tree_could_throw_p (tree) |
| bool | tree_can_throw_internal (tree) |
| bool | tree_can_throw_external (tree) |
| int | lookup_stmt_eh_region (tree) |
| void | add_stmt_to_eh_region (tree, int) |
| bool | remove_stmt_from_eh_region (tree) |
| bool | maybe_clean_or_replace_eh_stmt (tree, tree) |
| void | add_to_value (tree, tree) |
| void | debug_value_expressions (tree) |
| void | print_value_expressions (FILE *, tree) |
| bool | expressions_equal_p (tree, tree) |
| tree | get_value_handle (tree) |
| hashval_t | vn_compute (tree, hashval_t) |
| void | sort_vuses (VEC(tree, gc)*) |
| tree | vn_lookup_or_add (tree, tree) |
| tree | vn_lookup_or_add_with_vuses (tree, VEC(tree, gc)*) |
| void | vn_add (tree, tree) |
| void | vn_add_with_vuses (tree, tree, VEC(tree, gc)*) |
| tree | vn_lookup (tree, tree) |
| tree | vn_lookup_with_vuses (tree, VEC(tree, gc)*) |
| void | vn_init (void) |
| void | vn_delete (void) |
| bool | is_hidden_global_store (tree) |
| void | insert_edge_copies (tree, basic_block) |
| void | sra_insert_before (block_stmt_iterator *, tree) |
| void | sra_insert_after (block_stmt_iterator *, tree) |
| void | sra_init_cache (void) |
| bool | sra_type_can_be_decomposed_p (tree) |
| void | linear_transform_loops (struct loops *) |
| bool | expr_invariant_in_loop_p (struct loop *, tree) |
| bool | multiplier_allowed_in_address_p (HOST_WIDE_INT) |
| unsigned | multiply_by_cost (HOST_WIDE_INT, enum machine_mode) |
| bool | thread_through_all_blocks (void) |
| void | register_jump_thread (edge, edge) |
| tree | force_gimple_operand (tree, tree *, bool, tree) |
| tree | force_gimple_operand_bsi (block_stmt_iterator *, tree, bool, tree) |
| bool | find_what_p_points_to (tree) |
| void | remove_unused_locals (void) |
| tree | create_mem_ref (block_stmt_iterator *, tree, struct affine_tree_combination *) |
| rtx | addr_for_mem_ref (struct mem_address *, bool) |
| void | get_address_description (tree, struct mem_address *) |
| tree | maybe_fold_tmr (tree) |
| | DEF_VEC_O (fieldoff_s) |
| | DEF_VEC_ALLOC_O (fieldoff_s, heap) |
| int | push_fields_onto_fieldstack (tree, VEC(fieldoff_s, heap)**, HOST_WIDE_INT, bool *) |
| void | sort_fieldstack (VEC(fieldoff_s, heap)*) |
| void | init_alias_heapvars (void) |
| void | delete_alias_heapvars (void) |
| void | swap_tree_operands (tree, tree *, tree *) |
| void | recalculate_used_alone (void) |
Variables |
| bool | in_ssa_p |
| static tree_ann_common_t | tree_common_ann (tree) |
| static tree_ann_common_t | get_tree_common_ann (tree) |
| static var_ann_t | var_ann (tree) |
| static var_ann_t | get_var_ann (tree) |
| static function_ann_t | function_ann (tree) |
| static function_ann_t | get_function_ann (tree) |
| static stmt_ann_t | stmt_ann (tree) |
| static stmt_ann_t | get_stmt_ann (tree) |
| htab_t | referenced_vars |
| htab_t | default_defs |
| tree | global_var |
| bitmap | call_clobbered_vars |
| bitmap | addressable_vars |
| bool | aliases_computed_p |
| static block_stmt_iterator | bsi_start (basic_block) |
| static block_stmt_iterator | bsi_last (basic_block) |
| static block_stmt_iterator | bsi_after_labels (basic_block) |
| block_stmt_iterator | bsi_for_stmt (tree) |
| omp_region * | root_omp_region |
| var_ann_t | create_var_ann (tree) |
| function_ann_t | create_function_ann (tree) |
| stmt_ann_t | create_stmt_ann (tree) |
| tree_ann_common_t | create_tree_common_ann (tree) |
| static subvar_t | get_subvars_for_var (tree) |
| bool | updating_used_alone |