GCC Middle and Back End API Reference
tree-iterator.c File 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

Function Documentation

tree alloc_stmt_list ( void  )
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 void append_to_statement_list_1 ( )
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().


Variable Documentation

vec<tree, va_gc>* stmt_list_cache
static
@verbatim Iterator routines for manipulating GENERIC and GIMPLE tree statements.

Copyright (C) 2003-2013 Free Software Foundation, Inc. Contributed by Andrew MacLeod amacl.nosp@m.eod@.nosp@m.redha.nosp@m.t.co.nosp@m.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().