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().
Referenced by append_to_statement_list_1().
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.
Referenced by tsan_pass().
|
static |
A subroutine of append_to_statement_list{,_force}. T is not NULL.
References alloc_stmt_list().
void append_to_statement_list_force | ( | ) |
Similar, but the statement is always added, regardless of side effects.
References tree_stmt_iterator::container.
tree expr_first | ( | ) |
Return the first expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST.
tree expr_last | ( | ) |
Return the last expression in a sequence of COMPOUND_EXPRs, or in a STATEMENT_LIST.
void free_stmt_list | ( | ) |
Referenced by tsi_link_before().
void tsi_delink | ( | ) |
Remove a stmt from the tree list. The iterator is updated to point to the next stmt.
void tsi_link_after | ( | ) |
Links a statement, or a chain of statements, after the current stmt.
Die on looping.
Empty statement lists need no work.
Link it into the list.
Update the iterator, if requested.
void tsi_link_before | ( | ) |
Links a statement, or a chain of statements, before the current stmt.
Die on looping.
Empty statement lists need no work.
Link it into the list.
Update the iterator, if requested.
References free_stmt_list().
@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.