#include "config.h"#include "system.h"#include "rtl.h"#include "tree.h"#include "tm_p.h"#include "flags.h"#include "except.h"#include "function.h"#include "insn-config.h"#include "expr.h"#include "libfuncs.h"#include "hard-reg-set.h"#include "loop.h"#include "recog.h"#include "machmode.h"#include "toplev.h"#include "output.h"#include "ggc.h"#include "langhooks.h"#include "predict.h"#include "gt-stmt.h"

Go to the source code of this file.
Defines | |
| #define | CASE_VECTOR_PC_RELATIVE 0 |
| #define | COST_TABLE(I) cost_table_[(unsigned HOST_WIDE_INT) ((I) + 1)] |
| #define | ALLOC_NESTING() (struct nesting *) ggc_alloc (sizeof (struct nesting)) |
| #define | POPSTACK(STACK) |
| #define | block_stack (cfun->stmt->x_block_stack) |
| #define | stack_block_stack (cfun->stmt->x_stack_block_stack) |
| #define | cond_stack (cfun->stmt->x_cond_stack) |
| #define | loop_stack (cfun->stmt->x_loop_stack) |
| #define | case_stack (cfun->stmt->x_case_stack) |
| #define | nesting_stack (cfun->stmt->x_nesting_stack) |
| #define | nesting_depth (cfun->stmt->x_nesting_depth) |
| #define | current_block_start_count (cfun->stmt->x_block_start_count) |
| #define | last_expr_type (cfun->stmt->x_last_expr_type) |
| #define | last_expr_value (cfun->stmt->x_last_expr_value) |
| #define | expr_stmts_for_value (cfun->stmt->x_expr_stmts_for_value) |
| #define | emit_filename (cfun->stmt->x_emit_filename) |
| #define | emit_lineno (cfun->stmt->x_emit_lineno) |
| #define | goto_fixup_chain (cfun->stmt->x_goto_fixup_chain) |
| #define | BITARRAY_TEST(ARRAY, INDEX) |
| #define | BITARRAY_SET(ARRAY, INDEX) |
Typedefs | |
| typedef struct case_node | case_node |
| typedef struct case_node * | case_node_ptr |
Functions/Subroutines | |
| struct case_node | GTY (()) |
| static int n_occurrences | PARAMS ((int, const char *)) |
| static bool parse_input_constraint | PARAMS ((const char **, int, int, int, int, const char *const *, bool *, bool *)) |
| static bool decl_conflicts_with_clobbers_p | PARAMS ((tree, const HARD_REG_SET)) |
| static void expand_goto_internal | PARAMS ((tree, rtx, rtx)) |
| static rtx expand_nl_handler_label | PARAMS ((rtx, rtx)) |
| static void expand_nl_goto_receiver | PARAMS ((void)) |
| static void expand_nl_goto_receivers | PARAMS ((struct nesting *)) |
| static void fixup_gotos | PARAMS ((struct nesting *, rtx, tree, rtx, int)) |
| static bool check_operand_nalternatives | PARAMS ((tree, tree)) |
| static tree resolve_operand_names | PARAMS ((tree, tree, tree, const char **)) |
| static char *resolve_operand_name_1 | PARAMS ((char *, tree, tree)) |
| static void expand_null_return_1 | PARAMS ((rtx)) |
| static void expand_cleanups | PARAMS ((tree, tree, int, int)) |
| static void do_jump_if_equal | PARAMS ((rtx, rtx, rtx, int)) |
| static int estimate_case_costs | PARAMS ((case_node_ptr)) |
| static void balance_case_nodes | PARAMS ((case_node_ptr *, case_node_ptr)) |
| static int node_has_low_bound | PARAMS ((case_node_ptr, tree)) |
| static void emit_case_nodes | PARAMS ((rtx, case_node_ptr, rtx, tree)) |
| static struct case_node *case_tree2list | PARAMS ((case_node *, case_node *)) |
| void | using_eh_for_cleanups () |
| void | init_stmt_for_function () |
| int | in_control_zone_p () |
| void | set_file_and_line_for_stmt (char *file, int line) const |
| void | emit_nop () |
| rtx | label_rtx (tree label) |
| void | emit_jump (rtx label) |
| void | expand_computed_goto (tree exp) |
| void | expand_label (tree label) |
| void | declare_nonlocal_label (tree label) |
| void | expand_goto (tree label) |
| static void | expand_goto_internal (tree body, rtx label, rtx last_insn) |
| static int | expand_fixup (tree tree_label, rtx rtl_label, rtx last_insn) |
| void | expand_fixups (rtx first_insn) |
| static void | fixup_gotos (struct nesting *thisblock, rtx stack_level, tree cleanup_list, rtx first_insn, int dont_jump_in) |
| static int | n_occurrences (int c, const char *s) |
| void | expand_asm (tree string, int vol) |
| bool | parse_output_constraint (char **constraint_p, int operand_num, int ninputs, int noutputs, bool *allows_mem, bool *allows_reg, bool *is_inout) const |
| static bool | parse_input_constraint (char **constraint_p, int input_num, int ninputs, int noutputs, int ninout, const char *const *constraints, bool *allows_mem, bool *allows_reg) const |
| static bool | decl_conflicts_with_clobbers_p (tree decl, const HARD_REG_SET clobbered_regs) |
| void | expand_asm_operands (tree string, tree outputs, tree inputs, tree clobbers, int vol, const char *filename, int line) |
| static bool | check_operand_nalternatives (tree outputs, tree inputs) |
| static bool | check_unique_operand_names (tree outputs, tree inputs) |
| static tree | resolve_operand_names (tree string, tree outputs, tree inputs, const char **pconstraints) |
| static char * | resolve_operand_name_1 (char *p, tree outputs, tree inputs) |
| void | expand_expr_stmt (tree exp) |
| void | expand_expr_stmt_value (tree exp, int want_value, int maybe_last) |
| int | warn_if_unused_value (tree exp) |
| void | clear_last_expr () |
| tree | expand_start_stmt_expr (int has_scope) |
| tree | expand_end_stmt_expr (tree t) |
| void | expand_start_cond (tree cond, int exitflag) |
| void | expand_start_elseif (tree cond) |
| void | expand_start_else () |
| void | expand_elseif (tree cond) |
| void | expand_end_cond () |
| struct nesting * | expand_start_loop (int exit_flag) |
| struct nesting * | expand_start_loop_continue_elsewhere (int exit_flag) |
| struct nesting * | expand_start_null_loop () |
| void | expand_loop_continue_here () |
| void | expand_end_loop () |
| void | expand_end_null_loop () |
| int | expand_continue_loop (struct nesting *whichloop) |
| int | expand_exit_loop (struct nesting *whichloop) |
| int | expand_exit_loop_if_false (struct nesting *whichloop, tree cond) |
| int | expand_exit_loop_top_cond (struct nesting *whichloop, tree cond) |
| int | stmt_loop_nest_empty () |
| int | preserve_subexpressions_p () |
| int | expand_exit_something () |
| void | expand_null_return () |
| static enum br_predictor | return_prediction (rtx val) |
| static void | expand_value_return (rtx val) |
| static void | expand_null_return_1 (rtx last_insn) |
| void | expand_return (tree retval) |
| int | drop_through_at_end_p () |
| int | optimize_tail_recursion (tree arguments, rtx last_insn) |
| static int | tail_recursion_args (tree actuals, tree formals) |
| void | expand_start_bindings_and_block (int flags, tree block) |
| void | expand_start_target_temps () |
| void | expand_end_target_temps () |
| int | is_body_block (tree stmt) |
| int | conditional_context () |
| struct nesting * | current_nesting_level () |
| static rtx | expand_nl_handler_label (rtx slot, rtx before_insn) |
| static void | expand_nl_goto_receiver () |
| static void | expand_nl_goto_receivers (struct nesting *thisblock) |
| void | warn_about_unused_variables (tree vars) |
| void | expand_end_bindings (tree vars, int mark_ends, int dont_jump_in) |
| void | save_stack_pointer () |
| void | expand_decl (tree decl) |
| void | expand_decl_init (tree decl) |
| int | expand_decl_cleanup (tree decl, tree cleanup) |
| int | expand_decl_cleanup_eh (tree decl, tree cleanup, int eh_only) |
| void | expand_anon_union_decl (tree decl, tree cleanup, tree decl_elts) |
| static void | expand_cleanups (tree list, tree dont_do, int in_fixup, int reachable) |
| void | start_cleanup_deferral () |
| void | end_cleanup_deferral () |
| void | move_cleanups_up () |
| tree | last_cleanup_this_contour () |
| int | any_pending_cleanups (int this_contour) |
| void | expand_start_case (int exit_flag, tree expr, tree type, const char *printname) |
| void | expand_start_case_dummy () |
| void | expand_end_case_dummy () |
| tree | case_index_expr_type () |
| static void | check_seenlabel () |
| int | pushcase (tree value, tree *converter, tree label, tree *duplicate) |
| int | pushcase_range (tree value1, tree value2, tree *converter, tree label, tree *duplicate) |
| int | add_case_node (tree low, tree high, tree label, tree *duplicate) |
| HOST_WIDE_INT | all_cases_count (tree type, int *sparseness) |
| void | mark_seen_cases (tree type, unsigned char *cases_seen, HOST_WIDE_INT count, int sparseness) |
| void | check_for_full_enumeration_handling (tree type) |
| void | expand_end_case_type (tree orig_index, tree orig_type) |
| static struct case_node * | case_tree2list (struct case_node *node, struct case_node *right) |
| static void | do_jump_if_equal (rtx op1, rtx op2, rtx label, int unsignedp) |
| static int | estimate_case_costs (case_node_ptr node) |
| static void | group_case_nodes (case_node_ptr head) |
| static void | balance_case_nodes (case_node_ptr *head, case_node_ptr parent) |
| static int | node_has_low_bound (case_node_ptr node, tree index_type) |
| static int | node_has_high_bound (case_node_ptr node, tree index_type) |
| static int | node_is_bounded (case_node_ptr node, tree index_type) |
| static void | emit_jump_if_reachable (rtx label) |
| static void | emit_case_nodes (rtx index, case_node_ptr node, rtx default_label, tree index_type) |
Variables | |
| static short | cost_table_ [129] |
| static int | use_cost_table |
| static int | cost_table_initialized |
| static int | using_eh_for_cleanups_p = 0 |
Definition at line 265 of file stmt.c.
Referenced by expand_start_bindings_and_block(), expand_start_case(), expand_start_case_dummy(), expand_start_cond(), expand_start_loop(), and expand_start_null_loop().
Value:
((ARRAY)[(unsigned) (INDEX) / HOST_BITS_PER_CHAR]\ |= 1 << ((unsigned) (INDEX) % HOST_BITS_PER_CHAR))
Definition at line 5003 of file stmt.c.
Referenced by mark_seen_cases().
Value:
((ARRAY)[(unsigned) (INDEX) / HOST_BITS_PER_CHAR]\ & (1 << ((unsigned) (INDEX) % HOST_BITS_PER_CHAR)))
Definition at line 5000 of file stmt.c.
Referenced by check_for_full_enumeration_handling().
| #define block_stack (cfun->stmt->x_block_stack) |
Definition at line 387 of file stmt.c.
Referenced by any_pending_cleanups(), conditional_context(), current_nesting_level(), cwh_block_add_to_enclosing_regions(), cwh_block_bump(), cwh_block_dump(), cwh_block_pop_block(), cwh_block_pop_region(), cwh_block_push_block(), cwh_block_push_region(), cwh_block_set_region_pragmas(), end_cleanup_deferral(), expand_anon_union_decl(), expand_decl(), expand_decl_cleanup(), expand_decl_cleanup_eh(), expand_end_bindings(), expand_fixup(), expand_goto_internal(), expand_start_bindings_and_block(), identify_blocks(), identify_blocks_1(), init_stmt_for_function(), last_cleanup_this_contour(), move_cleanups_up(), remove_unnecessary_notes(), reorder_blocks(), save_stack_pointer(), and start_cleanup_deferral().
| #define case_stack (cfun->stmt->x_case_stack) |
Definition at line 391 of file stmt.c.
Referenced by add_case_node(), case_index_expr_type(), check_for_full_enumeration_handling(), check_seenlabel(), expand_end_case_dummy(), expand_end_case_type(), expand_exit_something(), expand_start_case(), expand_start_case_dummy(), in_control_zone_p(), init_stmt_for_function(), mark_seen_cases(), pushcase(), and pushcase_range().
| #define cond_stack (cfun->stmt->x_cond_stack) |
Definition at line 389 of file stmt.c.
Referenced by expand_elseif(), expand_end_cond(), expand_exit_something(), expand_fixup(), expand_start_cond(), expand_start_else(), expand_start_elseif(), in_control_zone_p(), and init_stmt_for_function().
| #define COST_TABLE | ( | I | ) | cost_table_[(unsigned HOST_WIDE_INT) ((I) + 1)] |
Definition at line 118 of file stmt.c.
Referenced by balance_case_nodes(), estimate_case_costs(), and LAT_DIRECTED_GRAPH16::Max_Cycle().
| #define current_block_start_count (cfun->stmt->x_block_start_count) |
Definition at line 394 of file stmt.c.
Referenced by expand_fixup(), expand_start_bindings_and_block(), and init_stmt_for_function().
| #define emit_filename (cfun->stmt->x_emit_filename) |
Definition at line 398 of file stmt.c.
Referenced by expand_expr_stmt_value(), set_file_and_line_for_stmt(), and warn_if_unused_value().
| #define emit_lineno (cfun->stmt->x_emit_lineno) |
Definition at line 399 of file stmt.c.
Referenced by expand_expr_stmt_value(), set_file_and_line_for_stmt(), and warn_if_unused_value().
| #define expr_stmts_for_value (cfun->stmt->x_expr_stmts_for_value) |
Definition at line 397 of file stmt.c.
Referenced by expand_end_bindings(), expand_end_stmt_expr(), expand_expr_stmt_value(), expand_start_stmt_expr(), and init_stmt_for_function().
| #define goto_fixup_chain (cfun->stmt->x_goto_fixup_chain) |
Definition at line 400 of file stmt.c.
Referenced by expand_fixup(), fixup_gotos(), and init_stmt_for_function().
| #define last_expr_value (cfun->stmt->x_last_expr_value) |
Definition at line 396 of file stmt.c.
Referenced by clear_last_expr(), expand_end_bindings(), expand_end_stmt_expr(), and expand_expr_stmt_value().
| #define loop_stack (cfun->stmt->x_loop_stack) |
Definition at line 390 of file stmt.c.
Referenced by Constant_Propogate(), Create_Initialize_Loop(), PAR_STAT::Distribute(), Doacross_Cost(), expand_continue_loop(), expand_end_loop(), expand_end_null_loop(), expand_exit_loop(), expand_exit_loop_if_false(), expand_exit_something(), expand_fixup(), expand_loop_continue_here(), expand_start_loop(), expand_start_loop_continue_elsewhere(), expand_start_null_loop(), Fuse(), in_control_zone_p(), init_stmt_for_function(), PAR_STAT::Innermost_Sandwiched_Code(), Parallelize_Doacross_Loop(), Post_loop_peeling(), Pre_loop_peeling(), preserve_subexpressions_p(), RV_Reverse_Loop(), Scan_Parameters(), SNL_Auto_Parallelization(), SNL_Inner_Cache_Cost(), stmt_loop_nest_empty(), Transform_Code(), SX_INFO::Update_Reduction_Loop_Stmts(), and Vintrinsic_Fission().
| #define nesting_depth (cfun->stmt->x_nesting_depth) |
Definition at line 393 of file stmt.c.
Referenced by c_parser_skip_to_end_of_block_or_statement(), c_parser_skip_to_end_of_parameter(), c_parser_skip_until_found(), cp_parser_skip_to_closing_brace(), cp_parser_skip_to_end_of_block_or_statement(), cp_parser_skip_to_end_of_statement(), cp_parser_skip_to_end_of_template_parameter_list(), cp_parser_skip_until_found(), expand_start_bindings_and_block(), expand_start_case(), expand_start_case_dummy(), expand_start_cond(), expand_start_loop(), expand_start_null_loop(), and init_stmt_for_function().
| #define nesting_stack (cfun->stmt->x_nesting_stack) |
Definition at line 392 of file stmt.c.
Referenced by expand_exit_something(), expand_start_bindings_and_block(), expand_start_case(), expand_start_case_dummy(), expand_start_cond(), expand_start_loop(), expand_start_null_loop(), and init_stmt_for_function().
| #define POPSTACK | ( | STACK | ) |
Value:
do { struct nesting *target = STACK; \ struct nesting *this; \ do { this = nesting_stack; \ if (loop_stack == this) \ loop_stack = loop_stack->next; \ if (cond_stack == this) \ cond_stack = cond_stack->next; \ if (block_stack == this) \ block_stack = block_stack->next; \ if (stack_block_stack == this) \ stack_block_stack = stack_block_stack->next; \ if (case_stack == this) \ case_stack = case_stack->next; \ nesting_depth = nesting_stack->depth - 1; \ nesting_stack = this->all; } \ while (this != target); } while (0)
Definition at line 273 of file stmt.c.
Referenced by expand_end_bindings(), expand_end_case_dummy(), expand_end_case_type(), expand_end_cond(), expand_end_loop(), and expand_end_null_loop().
| #define stack_block_stack (cfun->stmt->x_stack_block_stack) |
Definition at line 388 of file stmt.c.
Referenced by expand_decl_cleanup(), expand_end_bindings(), expand_label(), expand_start_bindings_and_block(), init_stmt_for_function(), pushcase(), pushcase_range(), and save_stack_pointer().
| typedef struct case_node* case_node_ptr |
Definition at line 4694 of file stmt.c.
References b, case_stack, expand_label(), ggc_alloc, if(), p, q, r, s, tree_int_cst_equal(), and tree_int_cst_lt().
Referenced by expand_case(), genrtl_case_label(), pushcase(), and pushcase_range().
| HOST_WIDE_INT all_cases_count | ( | tree | type, | |
| int * | sparseness | |||
| ) |
Definition at line 4941 of file stmt.c.
References BITS_PER_UNIT, build(), convert(), count, fold(), host_integerp(), HOST_WIDE_INT, integer_zero_node, NULL_TREE, TREE_CHAIN, TREE_CODE, tree_low_cst(), TREE_VALUE, TYPE_MAX_VALUE, TYPE_MIN_VALUE, and TYPE_VALUES.
Referenced by check_for_full_enumeration_handling().
| int any_pending_cleanups | ( | int | this_contour | ) |
Definition at line 4410 of file stmt.c.
References block_stack, cfun, and NULL.
Referenced by expand_call().
| static void balance_case_nodes | ( | case_node_ptr * | head, | |
| case_node_ptr | parent | |||
| ) | [static] |
Definition at line 5757 of file stmt.c.
References COST_TABLE, i, tree_int_cst_equal(), TREE_INT_CST_LOW, and use_cost_table.
Referenced by balance_case_nodes(), expand_case(), and expand_end_case_type().
| tree case_index_expr_type | ( | ) |
| static struct case_node* case_tree2list | ( | struct case_node * | node, | |
| struct case_node * | right | |||
| ) | [static, read] |
Definition at line 5581 of file stmt.c.
Referenced by case_tree2list(), check_for_full_enumeration_handling(), expand_end_case_type(), and mark_seen_cases().
Definition at line 5158 of file stmt.c.
References all_cases_count(), BITARRAY_TEST, case_stack, case_tree2list(), DECL_NAME, free(), HOST_BITS_PER_CHAR, HOST_WIDE_INT, i, IDENTIFIER_POINTER, mark_seen_cases(), n, NULL, NULL_TREE, really_call_calloc, size, TREE_CHAIN, TREE_CODE, tree_int_cst_equal(), TREE_INT_CST_LOW, TREE_PURPOSE, TREE_VALUE, TYPE_NAME, TYPE_VALUES, and warning.
Referenced by expand_end_case_type().
Definition at line 1925 of file stmt.c.
References error(), MAX_RECOG_ALTERNATIVES, n_occurrences, next, tmp, TREE_CHAIN, TREE_PURPOSE, TREE_STRING_POINTER, and TREE_VALUE.
Referenced by expand_asm_operands().
| static void check_seenlabel | ( | ) | [static] |
Definition at line 4528 of file stmt.c.
References case_stack, GET_CODE, insn, NEXT_INSN, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, PATTERN, PREV_INSN, restore_line_number_status(), and USE.
Referenced by expand_end_case_type(), pushcase(), and pushcase_range().
Definition at line 1969 of file stmt.c.
References error(), failure, i, simple_cst_equal(), TREE_CHAIN, TREE_PURPOSE, and TREE_STRING_POINTER.
Referenced by expand_asm_operands(), and resolve_asm_operand_names().
| void clear_last_expr | ( | ) |
Definition at line 2347 of file stmt.c.
References last_expr_type, last_expr_value, NULL_RTX, and NULL_TREE.
Referenced by bison_rule_pushlevel_(), expand_asm(), expand_asm_operands(), expand_continue_loop(), expand_end_cond(), expand_end_loop(), expand_end_null_loop(), expand_end_stmt_expr(), expand_exit_loop(), expand_exit_loop_if_false(), expand_exit_something(), expand_null_return_1(), genrtl_do_pushlevel(), init_stmt_for_function(), maybe_push_cleanup_level(), start_cdtor(), and synthesize_method().
| int conditional_context | ( | ) |
Definition at line 3527 of file stmt.c.
References block_stack.
Referenced by expand_decl_cleanup().
| struct nesting* current_nesting_level | ( | ) | [read] |
Definition at line 3536 of file stmt.c.
References block_stack, and cfun.
Referenced by genrtl_compound_stmt().
| static bool decl_conflicts_with_clobbers_p | ( | tree | decl, | |
| const HARD_REG_SET | clobbered_regs | |||
| ) | [static] |
Definition at line 1438 of file stmt.c.
References DECL_NAME, DECL_REGISTER, DECL_RTL, error(), FIRST_PSEUDO_REGISTER, GET_MODE, HARD_REGNO_NREGS, IDENTIFIER_POINTER, REG_P, REGNO, TEST_HARD_REG_BIT, and TREE_CODE.
Referenced by expand_asm_operands().
Definition at line 608 of file stmt.c.
References assign_stack_local(), emit_stack_save(), gen_rtx_EXPR_LIST, GET_MODE_SIZE, LABEL_PRESERVE_P, label_rtx(), nonlocal_goto_handler_slots, nonlocal_goto_stack_level, nonlocal_labels, NULL_TREE, Pmode, PREV_INSN, SAVE_NONLOCAL, tail_recursion_reentry, and tree_cons.
Referenced by genrtl_decl_stmt().
Definition at line 5602 of file stmt.c.
References emit_cmp_and_jump_insns(), emit_jump(), EQ, GET_CODE, GET_MODE, INTVAL, and NULL_RTX.
Referenced by emit_case_nodes().
| int drop_through_at_end_p | ( | ) |
| static void emit_case_nodes | ( | rtx | index, | |
| case_node_ptr | node, | |||
| rtx | default_label, | |||
| tree | index_type | |||
| ) | [static] |
Definition at line 6014 of file stmt.c.
References build(), build1, build_decl, convert_modes(), do_jump_if_equal(), emit_cmp_and_jump_insns(), emit_jump(), emit_jump_if_reachable(), expand_expr(), expand_label(), expand_simple_binop(), fold(), GE, GET_MODE, GT, high, label_rtx(), LE, low, LT, MINUS, mode, node_has_high_bound(), node_has_low_bound(), node_is_bounded(), NULL_RTX, NULL_TREE, OPTAB_WIDEN, tree_int_cst_equal(), TREE_UNSIGNED, and TYPE_MODE.
Referenced by emit_case_nodes(), expand_case(), and expand_end_case_type().
Definition at line 529 of file stmt.c.
Referenced by build_java_jsr(), build_post_landing_pads(), connect_post_landing_pads(), construct_init_block(), do_compare_rtx_and_jump(), do_jump(), do_jump_by_parts_equality(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), do_jump_if_equal(), emit_block_move_via_loop(), emit_case_bit_tests(), emit_case_nodes(), emit_jump_if_reachable(), expand_builtin_eh_return(), expand_builtin_setjmp(), expand_case(), expand_computed_goto(), expand_eh_region_end_allowed(), expand_eh_region_end_cleanup(), expand_eh_region_end_must_not_throw(), expand_eh_return(), expand_end_case_type(), expand_end_catch(), expand_end_loop(), expand_expr(), expand_goto(), expand_goto_internal(), expand_naked_return(), expand_nl_goto_receivers(), expand_null_return_1(), expand_start_all_catch(), expand_start_else(), expand_start_elseif(), genrtl_finish_function(), ix86_emit_i387_log1p(), mips_va_arg(), probe_stack_range(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), and store_constructor().
Definition at line 5980 of file stmt.c.
References emit_jump(), GET_CODE, and get_last_insn().
Referenced by emit_case_nodes(), and expand_end_case_type().
| void emit_nop | ( | ) |
Definition at line 497 of file stmt.c.
References emit_insn(), gen_nop(), GET_CODE, get_last_insn(), last_insn, optimize, and prev_real_insn().
Referenced by ffeste_labeldef_branch(), ffeste_R1226(), ffeste_R825(), ffeste_R841(), ffeste_R904(), ffeste_R907(), ffeste_R909_finish(), ffeste_R910_finish(), ffeste_R923A(), ffeste_subr_beru_(), genrtl_do_stmt(), genrtl_for_stmt(), and genrtl_while_stmt().
| void end_cleanup_deferral | ( | ) |
Definition at line 4370 of file stmt.c.
References block_stack.
Referenced by do_jump(), expand_end_case_dummy(), expand_end_case_type(), expand_expr(), expand_return(), and store_expr().
| static int estimate_case_costs | ( | case_node_ptr | node | ) | [static] |
Definition at line 5642 of file stmt.c.
References build_int_2, convert(), COST_TABLE, cost_table_initialized, HOST_WIDE_INT, i, INT_CST_LT, integer_minus_one_node, ISALNUM, ISCNTRL, ISPUNCT, n, TREE_INT_CST_LOW, and TREE_TYPE.
Referenced by expand_case(), and expand_end_case_type().
Definition at line 4218 of file stmt.c.
References abort, adjust_address_nv, block_stack, cfun, DECL_ALIGN, DECL_MODE, DECL_RTL, DECL_SIZE, DECL_USER_ALIGN, expand_decl(), expand_decl_cleanup(), gen_lowpart_SUBREG(), GET_CODE, GET_MODE, MEM, mode, mode_for_size_tree(), MODE_INT, REG, SET_DECL_RTL, TREE_ADDRESSABLE, TREE_CHAIN, tree_cons, TREE_PURPOSE, TREE_TYPE, TREE_USED, TREE_VALUE, TYPE_MODE, and x.
Referenced by c_expand_decl(), finish_anon_union(), and genrtl_decl_stmt().
Definition at line 1136 of file stmt.c.
References clear_last_expr(), emit_insn(), gen_rtx_ASM_INPUT, MEM_VOLATILE_P, TREE_CODE, TREE_OPERAND, and TREE_STRING_POINTER.
Referenced by expand_asm_expr(), and genrtl_asm_stmt().
| void expand_asm_operands | ( | tree | string, | |
| tree | outputs, | |||
| tree | inputs, | |||
| tree | clobbers, | |||
| int | vol, | |||
| const char * | filename, | |||
| int | line | |||
| ) |
Definition at line 1488 of file stmt.c.
References abort, ADDRESSOF, alloca, asm_operand_ok(), ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_CONSTRAINT_EXP, ASM_OPERANDS_OUTPUT_CONSTRAINT, assign_temp(), build_qualified_type(), check_operand_nalternatives(), check_unique_operand_names(), CLEAR_HARD_REG_SET, clear_last_expr(), CONCAT, CONSTANT_P, decl_conflicts_with_clobbers_p(), DECL_P, DECL_RTL, decode_reg_name(), emit_insn(), emit_move_insn(), empty_string, error(), error_mark_node, expand_expr(), EXPAND_MEMORY, EXPAND_NORMAL, EXPAND_WRITE, force_const_mem(), force_reg(), free_temp_slots(), gen_reg_rtx(), gen_rtx_ASM_INPUT, gen_rtx_ASM_OPERANDS, gen_rtx_CLOBBER, gen_rtx_MEM(), gen_rtx_PARALLEL, gen_rtx_REG(), gen_rtx_SCRATCH, gen_rtx_SET, generating_concat_p, GET_CODE, GET_MODE, ggc_alloc_string(), HARD_REG_SET, i, insn, internal_error(), list_length(), make_tree(), MAX_RECOG_OPERANDS, MD_ASM_CLOBBERS, MEM, MEM_VOLATILE_P, NULL_RTX, parse_input_constraint(), parse_output_constraint(), protect_from_queue(), REG, reg_overlap_mentioned_p(), resolve_operand_names(), rtvec_alloc(), SET_HARD_REG_BIT, SET_SRC, sprintf(), tail, TREE_CHAIN, TREE_CODE, TREE_STRING_POINTER, TREE_TYPE, TREE_VALUE, TYPE_MODE, TYPE_QUAL_CONST, TYPE_QUALS, val, validize_mem(), warning, and XVECEXP.
Referenced by c_expand_asm_operands(), and expand_asm_expr().
Definition at line 4303 of file stmt.c.
References CLEANUP_EH_ONLY, const0_rtx, expand_eh_region_end_cleanup(), expand_eh_region_end_fixup(), expand_eh_region_start(), expand_expr(), free_temp_slots(), tail, TREE_CHAIN, TREE_CODE, TREE_PURPOSE, TREE_VALUE, and using_eh_for_cleanups_p.
Referenced by expand_cleanups(), expand_end_bindings(), expand_goto_internal(), and fixup_gotos().
Definition at line 541 of file stmt.c.
Referenced by build_java_ret(), expand_expr(), expand_expr_real_1(), ffeste_R839(), and genrtl_goto_stmt().
| int expand_continue_loop | ( | struct nesting * | whichloop | ) |
Definition at line 2771 of file stmt.c.
References clear_last_expr(), emit_note(), expand_goto_internal(), flag_guess_branch_prob, IS_TAKEN, loop_stack, NOTE_INSN_PREDICTION, NOTE_PREDICT, NOTE_PREDICTION, NULL, NULL_RTX, and NULL_TREE.
Referenced by ffeste_R834(), and genrtl_continue_stmt().
Definition at line 3878 of file stmt.c.
Referenced by emit_local_var(), expand_anon_union_decl(), expand_expr(), expand_load_internal(), expand_var(), ffecom_lookup_label(), ffeste_R1001(), finish_decl(), finish_struct(), java_lang_expand_expr(), push_jvm_slot(), rest_of_decl_compilation(), and start_decl().
Definition at line 4103 of file stmt.c.
References block_stack, build(), build_decl, cfun, cond, conditional_context(), const0_rtx, const1_rtx, emit_insn_after(), emit_move_insn(), emit_note(), end_sequence(), expand_eh_region_start(), fold(), gen_reg_rtx(), get_insns(), get_last_insn(), integer_zero_node, NOTE_INSN_DELETED, NULL, NULL_TREE, SET_DECL_RTL, stack_block_stack, start_sequence(), TREE_ADDRESSABLE, tree_cons, unsave_expr(), using_eh_for_cleanups_p, void_type_node, and word_mode.
Referenced by complete_start_java_method(), expand_anon_union_decl(), expand_decl_cleanup_eh(), and expand_expr().
Definition at line 4200 of file stmt.c.
References block_stack, CLEANUP_EH_ONLY, expand_decl_cleanup(), node, and ret.
Referenced by expand_expr(), and genrtl_decl_cleanup().
Definition at line 4050 of file stmt.c.
References convert(), DECL_INITIAL, DECL_SOURCE_FILE, DECL_SOURCE_LINE, emit_line_note(), emit_queue(), error_mark_node, expand_assignment(), free_temp_slots(), integer_zero_node, NULL_RTX, pop_temp_slots(), preserve_temp_slots(), push_temp_slots(), TREE_CODE, TREE_STATIC, TREE_TYPE, and TREE_USED.
Referenced by emit_local_var(), expand_expr(), expand_load_internal(), ffeste_R1001(), and finish_decl().
Definition at line 2491 of file stmt.c.
References cond_stack, do_jump(), gen_label_rtx(), and NULL_RTX.
Definition at line 3729 of file stmt.c.
References block_stack, current_function_has_nonlocal_label, DECL_TOO_LATE, do_pending_stack_adjust(), emit_label(), emit_note(), emit_stack_restore(), emit_stack_save(), expand_cleanups(), expand_nl_goto_receivers(), expr_stmts_for_value, fixup_gotos(), function_call_count, GET_CODE, get_last_insn(), insn, last_expr_type, last_expr_value, nonlocal_goto_handler_slots, nonlocal_goto_stack_level, nonlocal_labels, NOTE_BLOCK, NOTE_INSN_BLOCK_END, NOTE_INSN_DELETED, NOTE_LINE_NUMBER, NULL, NULL_RTX, NULL_TREE, pop_temp_slots(), POPSTACK, prev_nonnote_insn(), SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL, stack_block_stack, target_temp_slot_level, TREE_ADDRESSABLE, and warn_about_unused_variables().
Referenced by bison_rule_compstmt_(), end_java_method(), expand_end_target_temps(), expand_expr(), expand_inline_function(), force_poplevels(), genrtl_scope_stmt(), java_lang_expand_expr(), and maybe_poplevels().
| void expand_end_case_dummy | ( | ) |
Definition at line 4510 of file stmt.c.
References case_stack, end_cleanup_deferral(), and POPSTACK.
Definition at line 5267 of file stmt.c.
References abort, alloca, ASM_OUTPUT_ADDR_DIFF_ELT, balance_case_nodes(), build(), build_decl, build_int_2, case_stack, case_tree2list(), case_values_threshold(), CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE, check_for_full_enumeration_handling(), check_seenlabel(), COMPARE, compare_tree_int(), const0_rtx, convert(), convert_to_mode(), copy_to_reg(), count, do_pending_stack_adjust(), emit_barrier(), emit_case_nodes(), emit_jump(), emit_jump_if_reachable(), emit_jump_insn(), emit_label(), emit_queue(), end, end_cleanup_deferral(), error_mark_node, estimate_case_costs(), expand_expr(), expand_label(), flag_pic, fold(), free_temp_slots(), gen_label_rtx(), gen_rtvec_v(), gen_rtx_ADDR_DIFF_VEC, gen_rtx_ADDR_VEC, gen_rtx_LABEL_REF, GET_CODE, get_last_insn(), GET_MODE, GET_MODE_CLASS, GET_MODE_WIDER_MODE, group_case_nodes(), have_insn_for(), HOST_WIDE_INT, i, index(), index_type, INT_CST_LT, integer_zero_node, INTVAL, label_rtx(), MEM, memset, MODE_INT, n, NEXT_INSN, NULL, NULL_RTX, NULL_TREE, optimize_size, Pmode, POPSTACK, protect_from_queue(), reorder_insns(), squeeze_notes(), TREE_CODE, tree_int_cst_equal(), tree_int_cst_lt(), tree_low_cst(), TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, try_casesi(), try_tablejump(), use_cost_table, warn_switch, warn_switch_default, warn_switch_enum, and warning.
Referenced by genrtl_switch_stmt().
| void expand_end_cond | ( | ) |
Definition at line 2502 of file stmt.c.
References clear_last_expr(), cond_stack, do_pending_stack_adjust(), emit_label(), and POPSTACK.
Referenced by expand_compare(), ffecom_expr_power_integer_(), ffeste_end_R807(), ffeste_io_call_(), ffeste_R806(), ffeste_R840(), ffeste_R909_finish(), and genrtl_if_stmt().
| void expand_end_loop | ( | ) |
Definition at line 2605 of file stmt.c.
References abort, any_condjump_p(), clear_last_expr(), do_pending_stack_adjust(), emit_barrier_before(), emit_jump(), emit_jump_insn_before(), emit_label(), emit_label_before(), emit_note(), emit_note_before(), gen_jump(), gen_label_rtx(), GET_CODE, get_last_insn(), insn, loop_stack, NEXT_INSN, next_insn(), NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_CONT, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_END_TOP_COND, NOTE_LINE_NUMBER, NULL, NULL_RTX, optimize, POPSTACK, PREV_INSN, and reorder_insns().
Referenced by expand_expr(), ffecom_expr_power_integer_(), ffeste_do(), ffeste_end_iterdo_(), genrtl_do_stmt(), genrtl_for_stmt(), genrtl_while_stmt(), and store_constructor().
| void expand_end_null_loop | ( | ) |
Definition at line 2755 of file stmt.c.
References clear_last_expr(), do_pending_stack_adjust(), emit_label(), loop_stack, and POPSTACK.
Referenced by genrtl_do_stmt(), and genrtl_for_stmt().
Definition at line 2392 of file stmt.c.
References clear_last_expr(), const0_rtx, CONSTANT_P, emit_queue(), end_sequence(), expr_stmts_for_value, GET_CODE, get_insns(), last_expr_type, last_expr_value, NULL_TREE, OK_DEFER_POP, protect_from_queue(), REG, rtl_expr_chain, RTL_EXPR_RTL, RTL_EXPR_SEQUENCE, tree_cons, TREE_SIDE_EFFECTS, TREE_THIS_VOLATILE, TREE_TYPE, void_type_node, and volatile_refs_p().
Referenced by c_expand_expr(), ffecom_expr_power_integer_(), and finish_global_stmt_expr().
| void expand_end_target_temps | ( | ) |
Definition at line 3483 of file stmt.c.
References expand_end_bindings(), NULL_TREE, and pop_temp_slots().
Referenced by build_vec_init(), emit_local_var(), expand_call(), genrtl_expr_stmt_value(), and genrtl_return_stmt().
| int expand_exit_loop | ( | struct nesting * | whichloop | ) |
Definition at line 2796 of file stmt.c.
References clear_last_expr(), expand_goto_internal(), loop_stack, NULL_RTX, and NULL_TREE.
Referenced by ffeste_R835().
Definition at line 2813 of file stmt.c.
References clear_last_expr(), do_jump(), emit_label(), expand_goto_internal(), gen_label_rtx(), GET_CODE, get_last_insn(), last_insn, loop_stack, NULL_RTX, and NULL_TREE.
Referenced by expand_exit_loop_top_cond(), expand_expr(), ffecom_expr_power_integer_(), ffeste_end_iterdo_(), genrtl_do_stmt(), and store_constructor().
Definition at line 2845 of file stmt.c.
References emit_note(), expand_exit_loop_if_false(), NOTE_INSN_LOOP_END_TOP_COND, and NULL.
Referenced by ffeste_begin_iterdo_(), ffeste_R819B(), genrtl_for_stmt(), and genrtl_while_stmt().
| int expand_exit_something | ( | ) |
Definition at line 2903 of file stmt.c.
References clear_last_expr(), expand_goto_internal(), n, nesting_stack, NULL_RTX, and NULL_TREE.
Referenced by ffeste_R810(), and genrtl_break_stmt().
Definition at line 2143 of file stmt.c.
Referenced by build_java_athrow(), complete_start_java_method(), emit_init_test_initialization(), expand_gimple_basic_block(), expand_gimple_tailcall(), expand_invoke(), expand_java_arraystore(), ffecom_do_entry_(), ffecom_expand_let_stmt(), ffecom_expr_power_integer_(), ffecom_let_char_(), ffeste_begin_iterdo_(), ffeste_end_iterdo_(), ffeste_io_call_(), ffeste_R1212(), ffeste_R803(), ffeste_R804(), ffeste_R807(), ffeste_R809(), ffeste_R819B(), ffeste_R838(), ffeste_R842(), ffeste_R843(), java_lang_expand_expr(), and stack_protect_epilogue().
Definition at line 2155 of file stmt.c.
References build1, build_pointer_type(), const0_rtx, copy_to_reg(), emit_cmp_and_jump_insns(), emit_filename, emit_label(), emit_lineno, emit_queue(), EQ, error_mark_node, expand_expr(), expr_stmts_for_value, extra_warnings, free_temp_slots(), gen_label_rtx(), GET_CODE, lab, last_expr_type, last_expr_value, MEM, NULL_RTX, preserve_temp_slots(), TREE_CODE, TREE_SIDE_EFFECTS, TREE_THIS_VOLATILE, TREE_TYPE, TYPE_MODE, TYPE_SIZE, VOID_TYPE_P, warn_if_unused_value(), and warn_unused_value.
Referenced by expand_expr(), expand_expr_stmt(), and genrtl_expr_stmt_value().
Definition at line 806 of file stmt.c.
References BLOCK, BLOCK_CHAIN, block_stack, cfun, cond_stack, current_block_start_count, current_function_decl, DECL_INITIAL, do_pending_stack_adjust(), emit_insn_after(), emit_note(), end, end_sequence(), get_last_insn(), ggc_alloc, goto_fixup_chain, loop_stack, make_node, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_INSN_DELETED, NULL, NULL_TREE, start, start_sequence(), tree_cons, and TREE_USED.
Referenced by expand_goto_internal().
Definition at line 630 of file stmt.c.
Referenced by expand_compare(), expand_end_java_handler(), expand_expr(), expand_expr_real_1(), expand_java_goto(), expand_nl_goto_receivers(), ffestd_stmt_pass_(), ffeste_io_call_(), ffeste_R1212(), ffeste_R836(), ffeste_R837(), ffeste_R840(), ffeste_R909_finish(), and genrtl_goto_stmt().
Definition at line 719 of file stmt.c.
References abort, block_stack, clear_pending_stack_adjust(), current_function_decl, DECL_NAME, DECL_TOO_LATE, do_pending_stack_adjust(), emit_jump(), emit_stack_restore(), error(), expand_cleanups(), expand_fixup(), GET_CODE, IDENTIFIER_POINTER, INSN_UID, NULL_RTX, NULL_TREE, PREV_INSN, return_label, SAVE_BLOCK, TREE_ADDRESSABLE, TREE_CODE, TREE_TYPE, and TYPE_RETURNS_STACK_DEPRESSED.
Referenced by expand_continue_loop(), expand_exit_loop(), expand_exit_loop_if_false(), expand_exit_something(), expand_goto(), expand_null_return_1(), and optimize_tail_recursion().
Definition at line 585 of file stmt.c.
Referenced by add_case_node(), build_java_jsr(), emit_case_nodes(), expand_byte_code(), expand_end_case_type(), expand_expr_real_1(), expand_stmt(), ffeste_labeldef_branch(), ffeste_R1226(), ffeste_R904(), ffeste_R907(), ffeste_R909_finish(), ffeste_R910_finish(), ffeste_R923A(), and ffeste_subr_beru_().
| void expand_loop_continue_here | ( | ) |
Definition at line 2594 of file stmt.c.
References do_pending_stack_adjust(), emit_label(), emit_note(), loop_stack, NOTE_INSN_LOOP_CONT, and NULL.
Referenced by ffeste_end_iterdo_(), genrtl_do_stmt(), and genrtl_for_stmt().
Definition at line 3568 of file stmt.c.
References ARG_POINTER_REGNUM, ARRAY_SIZE, cfun, copy_to_reg(), ELIMINABLE_REGS, emit_insn(), emit_move_insn(), fixed_regs, get_arg_pointer_save_area(), HARD_FRAME_POINTER_REGNUM, hard_frame_pointer_rtx, HAVE_nonlocal_goto, i, virtual_incoming_args_rtx, and virtual_stack_vars_rtx.
Referenced by expand_label(), and expand_nl_goto_receivers().
Definition at line 3624 of file stmt.c.
References DECL_TOO_LATE, emit_insn_before(), emit_jump(), emit_label(), emit_move_insn(), end_sequence(), expand_builtin_trap(), expand_goto(), expand_nl_goto_receiver(), expand_nl_handler_label(), gen_label_rtx(), gen_reg_rtx(), gen_rtx_EXPR_LIST, get_insns(), insns, lab, nonlocal_goto_handler_labels, nonlocal_goto_handler_slots, nonlocal_labels, NULL_RTX, Pmode, start_sequence(), TREE_CHAIN, TREE_VALUE, and XEXP.
Referenced by expand_end_bindings().
Definition at line 3545 of file stmt.c.
References emit_insn_before(), emit_label(), emit_move_insn(), end_sequence(), gen_label_rtx(), gen_rtx_LABEL_REF, get_insns(), insns, LABEL_PRESERVE_P, Pmode, and start_sequence().
Referenced by expand_nl_goto_receivers().
Definition at line 2921 of file stmt.c.
Referenced by expand_builtin_return(), expand_expr(), expand_expr_real_1(), expand_java_return(), expand_return(), ffecom_do_entry_(), ffecom_gen_sfuncdef_(), ffeste_R1227(), and genrtl_return_stmt().
Definition at line 3018 of file stmt.c.
References cleanup_label, clear_last_expr(), clear_pending_stack_adjust(), do_pending_stack_adjust(), expand_goto_internal(), gen_label_rtx(), NULL_TREE, and return_label.
Referenced by expand_null_return(), and expand_value_return().
Definition at line 3036 of file stmt.c.
Referenced by expand_expr(), expand_expr_real_1(), expand_java_return(), expand_return(), ffecom_do_entry_(), ffecom_gen_sfuncdef_(), ffeste_R1227(), and genrtl_return_stmt().
Definition at line 3397 of file stmt.c.
References abort, ALLOC_NESTING, block_stack, current_block_start_count, emit_note(), gen_label_rtx(), nesting_depth, nesting_stack, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_DELETED, NULL, NULL_TREE, push_temp_slots(), stack_block_stack, target_temp_slot_level, and tree_cons.
Referenced by expand_inline_function(), and genrtl_scope_stmt().
Definition at line 4444 of file stmt.c.
References ALLOC_NESTING, case_stack, do_pending_stack_adjust(), emit_note(), emit_queue(), force_line_numbers(), gen_label_rtx(), GET_CODE, get_last_insn(), nesting_depth, nesting_stack, NOTE_INSN_DELETED, NULL, and start_cleanup_deferral().
Referenced by ffestd_stmt_pass_(), ffeste_R1212(), ffeste_R809(), ffeste_R837(), genrtl_switch_stmt(), and java_lang_expand_expr().
| void expand_start_case_dummy | ( | ) |
Definition at line 4487 of file stmt.c.
References ALLOC_NESTING, case_stack, nesting_depth, nesting_stack, and start_cleanup_deferral().
Definition at line 2434 of file stmt.c.
References ALLOC_NESTING, cond_stack, do_jump(), gen_label_rtx(), nesting_depth, nesting_stack, and NULL_RTX.
Referenced by expand_compare(), ffecom_expr_power_integer_(), ffeste_io_call_(), ffeste_R803(), ffeste_R804(), ffeste_R807(), ffeste_R840(), ffeste_R909_finish(), and genrtl_if_stmt().
| void expand_start_else | ( | ) |
Definition at line 2477 of file stmt.c.
References cond_stack, emit_jump(), emit_label(), and gen_label_rtx().
Referenced by ffecom_expr_power_integer_(), ffeste_R804(), ffeste_R805(), ffeste_R840(), and genrtl_if_stmt().
Definition at line 2462 of file stmt.c.
References cond_stack, do_jump(), emit_jump(), emit_label(), gen_label_rtx(), and NULL_RTX.
Referenced by ffeste_R840().
| struct nesting* expand_start_loop | ( | int | exit_flag | ) | [read] |
Definition at line 2524 of file stmt.c.
References ALLOC_NESTING, do_pending_stack_adjust(), emit_label(), emit_note(), emit_queue(), gen_label_rtx(), loop_stack, nesting_depth, nesting_stack, NOTE_INSN_LOOP_BEG, and NULL.
Referenced by expand_expr(), expand_start_loop_continue_elsewhere(), ffecom_expr_power_integer_(), ffeste_R819B(), genrtl_while_stmt(), and store_constructor().
| struct nesting* expand_start_loop_continue_elsewhere | ( | int | exit_flag | ) | [read] |
Definition at line 2555 of file stmt.c.
References expand_start_loop(), gen_label_rtx(), and loop_stack.
Referenced by ffeste_begin_iterdo_(), genrtl_do_stmt(), and genrtl_for_stmt().
| struct nesting* expand_start_null_loop | ( | ) | [read] |
Definition at line 2567 of file stmt.c.
References ALLOC_NESTING, emit_note(), gen_label_rtx(), loop_stack, nesting_depth, nesting_stack, NOTE_INSN_DELETED, NULL, and NULL_RTX.
Referenced by genrtl_do_stmt(), and genrtl_for_stmt().
| tree expand_start_stmt_expr | ( | int | has_scope | ) |
Definition at line 2361 of file stmt.c.
References do_pending_stack_adjust(), expr_stmts_for_value, make_node, NO_DEFER_POP, start_sequence(), and start_sequence_for_rtl_expr().
Referenced by begin_global_stmt_expr(), c_expand_expr(), and ffecom_expr_power_integer_().
| void expand_start_target_temps | ( | ) |
Definition at line 3469 of file stmt.c.
References expand_start_bindings, push_temp_slots(), target_temp_slot_level, and temp_slot_level.
Referenced by build_vec_init(), emit_local_var(), expand_call(), genrtl_expr_stmt_value(), and genrtl_return_stmt().
Definition at line 2967 of file stmt.c.
References convert_modes(), current_function_decl, DECL_MODE, DECL_RESULT, DECL_RTL, emit_group_load(), emit_move_insn(), emit_note(), expand_null_return_1(), flag_guess_branch_prob, GET_CODE, get_last_insn(), int_size_in_bytes(), last_insn, mode, NOT_TAKEN, NOTE_INSN_PREDICTION, NOTE_PREDICT, NOTE_PREDICTION, NULL, promote_mode(), return_prediction(), TREE_TYPE, and TREE_UNSIGNED.
Referenced by expand_return().
| static void fixup_gotos | ( | struct nesting * | thisblock, | |
| rtx | stack_level, | |||
| tree | cleanup_list, | |||
| rtx | first_insn, | |||
| int | dont_jump_in | |||
| ) | [static] |
Definition at line 965 of file stmt.c.
References current_function_decl, DECL_ERROR_ISSUED, do_pending_stack_adjust(), emit_insn_after(), emit_stack_restore(), end_sequence(), expand_cleanups(), f, get_insns(), goto_fixup_chain, INSN_UID, NULL_TREE, prev, PREV_INSN, return_label, SAVE_BLOCK, start_sequence(), TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VALUE, and TYPE_RETURNS_STACK_DEPRESSED.
Referenced by expand_end_bindings(), and expand_fixups().
| static void group_case_nodes | ( | case_node_ptr | head | ) | [static] |
Definition at line 5704 of file stmt.c.
References build(), fold(), integer_one_node, label_rtx(), next_real_insn(), node, PATTERN, rtx_equal_p(), SET_SRC, simplejump_p(), tree_int_cst_equal(), tree_int_cst_lt(), and TREE_TYPE.
Referenced by expand_end_case_type().
| int in_control_zone_p | ( | ) |
| void init_stmt_for_function | ( | ) |
Definition at line 447 of file stmt.c.
References block_stack, case_stack, cfun, clear_last_expr(), cond_stack, current_block_start_count, expr_stmts_for_value, ggc_alloc, goto_fixup_chain, loop_stack, nesting_depth, nesting_stack, and stack_block_stack.
Referenced by prepare_function_start().
| int is_body_block | ( | tree | stmt | ) |
Definition at line 513 of file stmt.c.
Referenced by build_java_jsr(), construct_init_block(), declare_nonlocal_label(), decode_addr_const(), emit_case_bit_tests(), emit_case_nodes(), expand_builtin(), expand_case(), expand_end_case_type(), expand_expr(), expand_expr_real_1(), expand_gimple_cond_expr(), expand_goto(), expand_label(), force_label_rtx(), genrtl_goto_stmt(), group_case_nodes(), hppa_profile_hook(), lookup_label(), and make_label_decl().
| tree last_cleanup_this_contour | ( | ) |
Definition at line 5016 of file stmt.c.
References add_double, BITARRAY_SET, case_stack, case_tree2list(), HOST_WIDE_INT, make_node, n, neg_double(), NULL_TREE, root, TREE_CHAIN, tree_int_cst_equal(), TREE_INT_CST_HIGH, TREE_INT_CST_LOW, tree_int_cst_lt(), TREE_TYPE, TREE_VALUE, TYPE_MIN_VALUE, TYPE_VALUES, and val.
Referenced by check_for_full_enumeration_handling().
| void move_cleanups_up | ( | ) |
| static int n_occurrences | ( | int | c, | |
| const char * | s | |||
| ) | [static] |
| static int node_has_high_bound | ( | case_node_ptr | node, | |
| tree | index_type | |||
| ) | [static] |
Definition at line 5923 of file stmt.c.
References build(), fold(), integer_one_node, NULL, tree_int_cst_equal(), tree_int_cst_lt(), TREE_TYPE, and TYPE_MAX_VALUE.
Referenced by emit_case_nodes(), and node_is_bounded().
| static int node_has_low_bound | ( | case_node_ptr | node, | |
| tree | index_type | |||
| ) | [static] |
Definition at line 5876 of file stmt.c.
References build(), fold(), integer_one_node, tree_int_cst_equal(), tree_int_cst_lt(), TREE_TYPE, and TYPE_MIN_VALUE.
Referenced by emit_case_nodes(), and node_is_bounded().
| static int node_is_bounded | ( | case_node_ptr | node, | |
| tree | index_type | |||
| ) | [static] |
Definition at line 5969 of file stmt.c.
References node_has_high_bound(), and node_has_low_bound().
Referenced by emit_case_nodes().
Definition at line 3272 of file stmt.c.
References current_function_decl, DECL_ARGUMENTS, emit_barrier(), emit_label_after(), emit_queue(), expand_goto_internal(), gen_label_rtx(), NULL_TREE, tail_recursion_args(), tail_recursion_label, and tail_recursion_reentry.
Referenced by expand_call().
| static void emit_case_nodes PARAMS | ( | (rtx, case_node_ptr, rtx, tree) | ) | [static] |
| static int node_has_low_bound PARAMS | ( | (case_node_ptr, tree) | ) | [static] |
| static void balance_case_nodes PARAMS | ( | (case_node_ptr *, case_node_ptr) | ) | [static] |
| static int estimate_case_costs PARAMS | ( | (case_node_ptr) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static bool parse_input_constraint PARAMS | ( | (const char **, int, int, int, int, const char *const *, bool *, bool *) | ) | [static] |
| static int n_occurrences PARAMS | ( | (int, const char *) | ) | [static] |
| static bool parse_input_constraint | ( | char ** | constraint_p, | |
| int | input_num, | |||
| int | ninputs, | |||
| int | noutputs, | |||
| int | ninout, | |||
| const char * const * | constraints, | |||
| bool * | allows_mem, | |||
| bool * | allows_reg | |||
| ) | const [static] |
Definition at line 1307 of file stmt.c.
References end, error(), EXTRA_ADDRESS_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT, ISALPHA, NO_REGS, REG_CLASS_FROM_LETTER, strlen(), and strtoul().
Referenced by build_asm_expr(), expand_asm_operands(), finish_asm_stmt(), get_asm_expr_operands(), and gimplify_asm_expr().
| bool parse_output_constraint | ( | char ** | constraint_p, | |
| int | operand_num, | |||
| int | ninputs, | |||
| int | noutputs, | |||
| bool * | allows_mem, | |||
| bool * | allows_reg, | |||
| bool * | is_inout | |||
| ) | const |
Definition at line 1168 of file stmt.c.
References alloca, buf, error(), EXTRA_ADDRESS_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT, ggc_alloc_string(), ISALPHA, NO_REGS, p, REG_CLASS_FROM_LETTER, strchr, strcpy, strlen(), and warning.
Referenced by build_asm_expr(), expand_asm_operands(), finish_asm_stmt(), get_asm_expr_operands(), and gimplify_asm_expr().
| int preserve_subexpressions_p | ( | ) |
Definition at line 2875 of file stmt.c.
References cfun, flag_expensive_optimizations, get_last_insn_anywhere(), insn, INSN_UID, loop_stack, n_non_fixed_regs, and optimize.
Referenced by emit_store_flag(), expand_binop(), expand_mult(), expand_twoval_binop(), get_subtarget(), legitimize_operands(), precompute_register_parameters(), and prepare_cmp_insn().
Definition at line 4580 of file stmt.c.
References add_case_node(), case_stack, check_seenlabel(), error_mark_node, index_type, int_fits_type_p(), stack_block_stack, TREE_CONSTANT_OVERFLOW, and TREE_TYPE.
Referenced by ffestd_stmt_pass_(), ffeste_R1212(), ffeste_R810(), ffeste_R837(), and java_lang_expand_expr().
Definition at line 4630 of file stmt.c.
References add_case_node(), case_stack, check_seenlabel(), error_mark_node, index_type, int_fits_type_p(), stack_block_stack, TREE_CONSTANT_OVERFLOW, tree_int_cst_lt(), TREE_TYPE, TYPE_MAX_VALUE, and TYPE_MIN_VALUE.
Referenced by ffeste_R810().
Definition at line 2076 of file stmt.c.
References abort, c, error(), len, memmove, q, sprintf(), strchr, strlen(), strncmp(), TREE_CHAIN, TREE_PURPOSE, and TREE_STRING_POINTER.
Referenced by resolve_asm_operand_names(), and resolve_operand_names().
| static tree resolve_operand_names | ( | tree | string, | |
| tree | outputs, | |||
| tree | inputs, | |||
| const char ** | pconstraints | |||
| ) | [static] |
Definition at line 2012 of file stmt.c.
References build_string(), c, free(), ggc_alloc_string(), ISALPHA, NULL, p, resolve_operand_name_1(), strchr, strlen(), TREE_CHAIN, TREE_PURPOSE, TREE_STRING_POINTER, TREE_VALUE, and xstrdup().
Referenced by expand_asm_operands().
| static enum br_predictor return_prediction | ( | rtx | val | ) | [static] |
Definition at line 2937 of file stmt.c.
References const0_rtx, const1_rtx, CONSTANT_P, current_function_decl, DECL_RESULT, GET_CODE, INTVAL, POINTER_TYPE_P, and TREE_TYPE.
Referenced by apply_return_prediction(), and expand_value_return().
| void save_stack_pointer | ( | ) |
Definition at line 3861 of file stmt.c.
References block_stack, emit_stack_save(), SAVE_BLOCK, SAVE_FUNCTION, and stack_block_stack.
Referenced by expand_call(), expand_decl(), and verify_jvm_instructions().
| void set_file_and_line_for_stmt | ( | char * | file, | |
| int | line | |||
| ) | const |
Definition at line 480 of file stmt.c.
References cfun, emit_filename, and emit_lineno.
Referenced by emit_line_note().
| void start_cleanup_deferral | ( | ) |
Definition at line 4356 of file stmt.c.
References block_stack.
Referenced by do_jump(), expand_expr(), expand_return(), expand_start_case(), expand_start_case_dummy(), and store_expr().
| int stmt_loop_nest_empty | ( | ) |
Definition at line 3301 of file stmt.c.
References a, alloca, convert_move(), copy, copy_to_reg(), DECL_MODE, DECL_RTL, emit_move_insn(), expand_expr(), f, free_temp_slots(), gen_reg_rtx(), GET_CODE, GET_MODE, i, NULL_RTX, promote_mode(), REG, reg_mentioned_p(), tmp, TREE_CHAIN, TREE_TYPE, TREE_UNSIGNED, TREE_VALUE, and TYPE_MAIN_VARIANT.
Referenced by optimize_tail_recursion().
Definition at line 441 of file stmt.c.
Referenced by c_maybe_initialize_eh(), cxx_init_decl_processing(), finish_decl(), and java_init().
Definition at line 3702 of file stmt.c.
References DECL_ARTIFICIAL, DECL_IN_SYSTEM_HEADER, DECL_NAME, TREE_CHAIN, TREE_CODE, TREE_USED, and warn_unused_variable.
Referenced by expand_end_bindings(), and poplevel().
| int warn_if_unused_value | ( | tree | exp | ) |
Definition at line 2239 of file stmt.c.
References DECL_P, emit_filename, emit_lineno, TREE_CODE, TREE_CODE_CLASS, TREE_CODE_LENGTH, TREE_CONSTANT, TREE_NO_UNUSED_WARNING, TREE_OPERAND, TREE_SIDE_EFFECTS, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, and VOID_TYPE_P.
Referenced by build_compound_expr(), build_x_compound_expr(), emit_side_effect_warnings(), expand_expr_stmt_value(), gimplify_expr_stmt(), internal_build_compound_expr(), and warn_if_unused_value().
short cost_table_[129] [static] |
int cost_table_initialized [static] |
int use_cost_table [static] |
Definition at line 113 of file stmt.c.
Referenced by balance_case_nodes(), expand_case(), and expand_end_case_type().
int using_eh_for_cleanups_p = 0 [static] |
Definition at line 403 of file stmt.c.
Referenced by expand_cleanups(), expand_decl_cleanup(), lower_try_finally(), and using_eh_for_cleanups().
1.5.6