GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | tree_stmt_iterator |
class | tsi_range |
Enumerations | |
enum | tsi_iterator_update { TSI_NEW_STMT , TSI_SAME_STMT , TSI_CHAIN_START , TSI_CHAIN_END , TSI_CONTINUE_LINKING } |
Functions | |
tree_stmt_iterator | tsi_start (tree t) |
tree_stmt_iterator | tsi_last (tree t) |
bool | tsi_end_p (tree_stmt_iterator i) |
bool | tsi_one_before_end_p (tree_stmt_iterator i) |
void | tsi_next (tree_stmt_iterator *i) |
void | tsi_prev (tree_stmt_iterator *i) |
tree * | tsi_stmt_ptr (tree_stmt_iterator i) |
tree | tsi_stmt (tree_stmt_iterator i) |
void | tsi_link_before (tree_stmt_iterator *, tree, enum tsi_iterator_update) |
void | tsi_link_after (tree_stmt_iterator *, tree, enum tsi_iterator_update) |
void | tsi_delink (tree_stmt_iterator *) |
tree | alloc_stmt_list (void) |
void | free_stmt_list (tree) |
void | append_to_statement_list (tree, tree *) |
void | append_to_statement_list_force (tree, tree *) |
tree | expr_first (tree) |
tree | expr_last (tree) |
tree | expr_single (tree) |
enum tsi_iterator_update |
|
extern |
References make_node(), stmt_list_cache, TREE_SET_CODE, TREE_SIDE_EFFECTS, TREE_TYPE, vec_safe_is_empty(), and void_type_node.
Referenced by append_to_statement_list_1(), copy_statement_list(), and create_task_copyfn().
Add T to the end of the list container pointed to by LIST_P. If T is an expression with no effects, it is ignored.
References append_to_statement_list_1(), TREE_CODE, and TREE_SIDE_EFFECTS.
Referenced by asan_finish_file(), build_cdtor(), build_cxa_dtor_registrations(), build_gcov_exit_decl(), build_init_ctor(), create_task_copyfn(), emutls_common_1(), gimplify_expr(), gimplify_omp_affinity(), gimplify_omp_depend(), gimplify_omp_loop(), hwasan_finish_file(), lower_rec_input_clauses(), omp_apply_tile(), omp_maybe_apply_loop_xforms(), shortcut_cond_expr(), shortcut_cond_r(), and tsan_finish_file().
Similar, but the statement is always added, regardless of side effects.
References append_to_statement_list_1(), and NULL_TREE.
Referenced by gimplify_omp_affinity(), gimplify_omp_depend(), and gimplify_omp_for().
Return the first expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST, disregarding DEBUG_BEGIN_STMTs, recursing into a STATEMENT_LIST if that's the first non-DEBUG_BEGIN_STMT.
References expr, expr_first(), NULL_TREE, STATEMENT_LIST_HEAD, TREE_CODE, and TREE_OPERAND.
Referenced by expr_first().
Return the last expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST, disregarding DEBUG_BEGIN_STMTs, recursing into a STATEMENT_LIST if that's the last non-DEBUG_BEGIN_STMT.
References expr, expr_last(), NULL_TREE, STATEMENT_LIST_TAIL, TREE_CODE, and TREE_OPERAND.
Referenced by block_may_fallthru(), expr_last(), shortcut_cond_expr(), and tree_invalid_nonnegative_warnv_p().
If EXPR is a STATEMENT_LIST containing just DEBUG_BEGIN_STMTs and a single other stmt, return that other stmt (recursively). If it is a STATEMENT_LIST containing no non-DEBUG_BEGIN_STMTs or multiple, return NULL_TREE. Otherwise return EXPR.
References expr, expr_single(), NULL_TREE, STATEMENT_LIST_HEAD, and TREE_CODE.
Referenced by expr_single(), protected_set_expr_location(), and protected_set_expr_location_if_unset().
|
extern |
References gcc_assert, STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, stmt_list_cache, and vec_safe_push().
Referenced by tsi_link_after(), and tsi_link_before().
|
extern |
Remove a stmt from the tree list. The iterator is updated to point to the next stmt.
References i, STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, and TREE_SIDE_EFFECTS.
Referenced by gimplify_omp_dispatch(), and gimplify_statement_list().
|
inline |
Referenced by copy_statement_list(), dequeue_and_dump(), dump_generic_node(), find_goto(), gimplify_bind_expr(), gimplify_omp_dispatch(), gimplify_omp_for(), gimplify_statement_list(), operand_compare::hash_operand(), operand_compare::operand_equal_p(), print_node(), rexpr_location(), try_catch_may_fallthru(), voidify_wrapper_expr(), and walk_tree_1().
|
inline |
References i, tree_stmt_iterator::ptr, and STATEMENT_LIST_TAIL.
Referenced by append_to_statement_list_1(), gimplify_bind_expr(), and voidify_wrapper_expr().
|
extern |
Links a statement, or a chain of statements, after the current stmt.
References free_stmt_list(), gcc_assert, ggc_alloc(), i, NULL, STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TREE_CODE, TREE_SIDE_EFFECTS, TSI_CHAIN_END, TSI_CHAIN_START, TSI_CONTINUE_LINKING, TSI_NEW_STMT, and TSI_SAME_STMT.
Referenced by append_to_statement_list_1(), copy_statement_list(), and gimplify_bind_expr().
|
extern |
Links a statement, or a chain of statements, before the current stmt.
References free_stmt_list(), gcc_assert, ggc_alloc(), i, NULL, STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TREE_CODE, TREE_SIDE_EFFECTS, TSI_CHAIN_END, TSI_CHAIN_START, TSI_CONTINUE_LINKING, TSI_NEW_STMT, and TSI_SAME_STMT.
Referenced by gimplify_bind_expr(), and gimplify_omp_dispatch().
|
inline |
|
inline |
Referenced by find_combined_omp_for(), find_goto(), find_nested_loop_xform(), and rexpr_location().
|
inline |
|
inline |
References i, tree_stmt_iterator::ptr, and STATEMENT_LIST_HEAD.
Referenced by tsi_range::begin(), copy_statement_list(), dequeue_and_dump(), dump_generic_node(), find_combined_omp_for(), find_goto(), find_nested_loop_xform(), gimplify_bind_expr(), gimplify_omp_dispatch(), gimplify_omp_for(), gimplify_statement_list(), operand_compare::hash_operand(), operand_compare::operand_equal_p(), print_node(), rexpr_location(), try_catch_may_fallthru(), and walk_tree_1().
|
inline |
|
inline |
Referenced by gimplify_omp_for(), gimplify_statement_list(), voidify_wrapper_expr(), and walk_tree_1().