GCC Middle and Back End API Reference
|
Functions | |
tree | alloc_stmt_list () |
void | free_stmt_list () |
static void | append_to_statement_list_1 () |
void | append_to_statement_list () |
void | append_to_statement_list_force () |
void | tsi_link_before () |
void | tsi_link_after () |
void | tsi_delink () |
tree | expr_first () |
tree | expr_last () |
Variables | |
static vec< tree, va_gc > * | stmt_list_cache |
tree alloc_stmt_list | ( | void | ) |
References memset(), and vec_safe_is_empty().
Referenced by append_to_statement_list_1(), copy_statement_list(), and create_task_copyfn().
void append_to_statement_list | ( | ) |
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().
Referenced by asan_finish_file(), build_cdtor(), build_init_ctor(), create_task_copyfn(), emutls_common_1(), gimplify_expr(), lower_rec_input_clauses(), mudflap_finish_file(), mudflap_register_call(), shortcut_cond_expr(), shortcut_cond_r(), and tsan_finish_file().
|
static |
A subroutine of append_to_statement_list{,_force}. T is not NULL.
References alloc_stmt_list(), first, TSI_CONTINUE_LINKING, tsi_last(), and tsi_link_after().
Referenced by append_to_statement_list(), and append_to_statement_list_force().
void append_to_statement_list_force | ( | ) |
Similar, but the statement is always added, regardless of side effects.
References append_to_statement_list_1().
tree expr_first | ( | ) |
Return the first expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST.
References tree_statement_list_node::stmt.
tree expr_last | ( | ) |
Return the last expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST.
References tree_statement_list_node::stmt.
Referenced by block_may_fallthru(), shortcut_cond_expr(), and tree_invalid_nonnegative_warnv_p().
void free_stmt_list | ( | ) |
References stmt_list_cache, and vec_safe_push().
Referenced by tsi_link_after(), and tsi_link_before().
void tsi_delink | ( | ) |
Remove a stmt from the tree list. The iterator is updated to point to the next stmt.
References tree_stmt_iterator::container, tree_statement_list_node::next, tree_statement_list_node::prev, and tree_stmt_iterator::ptr.
Referenced by gimplify_statement_list().
void tsi_link_after | ( | ) |
Links a statement, or a chain of statements, after the current stmt.
References tree_stmt_iterator::container, free_stmt_list(), tree_statement_list_node::next, tree_statement_list_node::prev, tree_stmt_iterator::ptr, tree_statement_list_node::stmt, TSI_CHAIN_END, TSI_CHAIN_START, TSI_CONTINUE_LINKING, TSI_NEW_STMT, and TSI_SAME_STMT.
Referenced by append_to_statement_list_1(), and copy_statement_list().
void tsi_link_before | ( | ) |
Links a statement, or a chain of statements, before the current stmt.
References tree_stmt_iterator::container, free_stmt_list(), tree_statement_list_node::next, tree_statement_list_node::prev, tree_stmt_iterator::ptr, tree_statement_list_node::stmt, TSI_CHAIN_END, TSI_CHAIN_START, TSI_CONTINUE_LINKING, TSI_NEW_STMT, and TSI_SAME_STMT.
@verbatim Iterator routines for manipulating GENERIC and GIMPLE tree statements.
Copyright (C) 2003-2013 Free Software Foundation, Inc. Contributed by Andrew MacLeod amacl eod@ redha t.co m
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.
This is a cache of STATEMENT_LIST nodes. We create and destroy them fairly often during gimplification.
Referenced by free_stmt_list().