GCC Middle and Back End API Reference
|
#include <tree-core.h>
A tree node can represent a data type, a variable, an expression or a statement. Each node has a TREE_CODE which says what kind of thing it represents. Some common codes are: INTEGER_TYPE -- represents a type of integers. ARRAY_TYPE -- represents a type of pointer. VAR_DECL -- represents a declared variable. INTEGER_CST -- represents a constant integer value. PLUS_EXPR -- represents a sum (an expression). As for the contents of a tree node: there are some fields that all nodes share. Each TREE_CODE has various special-purpose fields as well. The fields of a node are never accessed directly, always through accessor macros.
Every kind of tree node starts with this structure, so all nodes have these fields. See the accessor macros, defined below, for documentation of the fields, and the table below which connects the fields and the accessor macros.
unsigned tree_base::address_space |
unsigned tree_base::addressable_flag |
unsigned tree_base::asm_written_flag |
unsigned tree_base::atomic_flag |
struct { ... } tree_base::bits |
unsigned int tree_base::chrec_var |
unsigned tree_base::constant_flag |
unsigned tree_base::default_def_flag |
struct { ... } tree_base::dependence_info |
unsigned tree_base::deprecated_flag |
enum internal_fn tree_base::ifn |
struct { ... } tree_base::int_length |
unsigned tree_base::lang_flag_0 |
unsigned tree_base::lang_flag_1 |
unsigned tree_base::lang_flag_2 |
unsigned tree_base::lang_flag_3 |
unsigned tree_base::lang_flag_4 |
unsigned tree_base::lang_flag_5 |
unsigned tree_base::lang_flag_6 |
int tree_base::length |
unsigned int tree_base::log2_npatterns |
unsigned tree_base::nameless_flag |
unsigned int tree_base::nelts_per_pattern |
unsigned tree_base::nothrow_flag |
unsigned tree_base::nowarning_flag |
enum omp_memory_order tree_base::omp_atomic_memory_order |
unsigned tree_base::packed_flag |
unsigned tree_base::private_flag |
unsigned tree_base::protected_flag |
unsigned tree_base::public_flag |
unsigned tree_base::readonly_flag |
unsigned tree_base::saturating_flag |
unsigned tree_base::side_effects_flag |
unsigned tree_base::spare0 |
unsigned tree_base::spare1 |
unsigned tree_base::static_flag |
union { ... } tree_base::u |
unsigned tree_base::unavailable_flag |
unsigned tree_base::unsigned_flag |
unsigned int tree_base::unused |
unsigned tree_base::used_flag |
unsigned tree_base::user_align |
struct { ... } tree_base::vector_cst |
unsigned int tree_base::version |
unsigned tree_base::visited |
unsigned tree_base::volatile_flag |