GCC Middle and Back End API Reference
tree_base Struct Reference

#include <tree-core.h>

Data Fields

enum tree_code code: 16
 
unsigned side_effects_flag: 1
 
unsigned constant_flag: 1
 
unsigned addressable_flag: 1
 
unsigned volatile_flag: 1
 
unsigned readonly_flag: 1
 
unsigned asm_written_flag: 1
 
unsigned nowarning_flag: 1
 
unsigned visited: 1
 
unsigned used_flag: 1
 
unsigned nothrow_flag: 1
 
unsigned static_flag: 1
 
unsigned public_flag: 1
 
unsigned private_flag: 1
 
unsigned protected_flag: 1
 
unsigned deprecated_flag: 1
 
unsigned default_def_flag: 1
 
union { 
 
   struct { 
 
      unsigned   lang_flag_0: 1 
 
      unsigned   lang_flag_1: 1 
 
      unsigned   lang_flag_2: 1 
 
      unsigned   lang_flag_3: 1 
 
      unsigned   lang_flag_4: 1 
 
      unsigned   lang_flag_5: 1 
 
      unsigned   lang_flag_6: 1 
 
      unsigned   saturating_flag: 1 
 
      unsigned   unsigned_flag: 1 
 
      unsigned   packed_flag: 1 
 
      unsigned   user_align: 1 
 
      unsigned   nameless_flag: 1 
 
      unsigned   atomic_flag: 1 
 
      unsigned   unavailable_flag: 1 
 
      unsigned   spare0: 2 
 
      unsigned   spare1: 8 
 
      unsigned   address_space: 8 
 
   }   bits 
 
   struct { 
 
      unsigned short   unextended 
 
      unsigned short   extended 
 
   }   int_length 
 
   int   length 
 
   struct { 
 
      unsigned int   log2_npatterns: 8 
 
      unsigned int   nelts_per_pattern: 8 
 
      unsigned int   unused: 16 
 
   }   vector_cst 
 
   unsigned int   version 
 
   unsigned int   chrec_var 
 
   enum internal_fn   ifn 
 
   enum omp_memory_order   omp_atomic_memory_order 
 
   struct { 
 
      unsigned short   clique 
 
      unsigned short   base 
 
   }   dependence_info 
 
u 
 

Detailed Description

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.   

Field Documentation

◆ address_space

unsigned tree_base::address_space

◆ addressable_flag

unsigned tree_base::addressable_flag

◆ asm_written_flag

unsigned tree_base::asm_written_flag

◆ atomic_flag

unsigned tree_base::atomic_flag

◆ base

unsigned short tree_base::base

◆ [struct]

struct { ... } tree_base::bits

◆ chrec_var

unsigned int tree_base::chrec_var

◆ clique

unsigned short tree_base::clique

◆ code

enum tree_code tree_base::code

◆ constant_flag

unsigned tree_base::constant_flag

◆ default_def_flag

unsigned tree_base::default_def_flag

◆ [struct]

struct { ... } tree_base::dependence_info

◆ deprecated_flag

unsigned tree_base::deprecated_flag

◆ extended

unsigned short tree_base::extended

◆ ifn

enum internal_fn tree_base::ifn

◆ [struct]

struct { ... } tree_base::int_length

◆ lang_flag_0

unsigned tree_base::lang_flag_0

◆ lang_flag_1

unsigned tree_base::lang_flag_1

◆ lang_flag_2

unsigned tree_base::lang_flag_2

◆ lang_flag_3

unsigned tree_base::lang_flag_3

◆ lang_flag_4

unsigned tree_base::lang_flag_4

◆ lang_flag_5

unsigned tree_base::lang_flag_5

◆ lang_flag_6

unsigned tree_base::lang_flag_6

◆ length

int tree_base::length

◆ log2_npatterns

unsigned int tree_base::log2_npatterns

◆ nameless_flag

unsigned tree_base::nameless_flag

◆ nelts_per_pattern

unsigned int tree_base::nelts_per_pattern

◆ nothrow_flag

unsigned tree_base::nothrow_flag

◆ nowarning_flag

unsigned tree_base::nowarning_flag

◆ omp_atomic_memory_order

enum omp_memory_order tree_base::omp_atomic_memory_order

◆ packed_flag

unsigned tree_base::packed_flag

◆ private_flag

unsigned tree_base::private_flag

◆ protected_flag

unsigned tree_base::protected_flag

◆ public_flag

unsigned tree_base::public_flag

◆ readonly_flag

unsigned tree_base::readonly_flag

◆ saturating_flag

unsigned tree_base::saturating_flag

◆ side_effects_flag

unsigned tree_base::side_effects_flag

◆ spare0

unsigned tree_base::spare0

◆ spare1

unsigned tree_base::spare1

◆ static_flag

unsigned tree_base::static_flag

◆ [union]

union { ... } tree_base::u

◆ unavailable_flag

unsigned tree_base::unavailable_flag

◆ unextended

unsigned short tree_base::unextended

◆ unsigned_flag

unsigned tree_base::unsigned_flag

◆ unused

unsigned int tree_base::unused

◆ used_flag

unsigned tree_base::used_flag

◆ user_align

unsigned tree_base::user_align

◆ [struct]

struct { ... } tree_base::vector_cst

◆ version

unsigned int tree_base::version

◆ visited

unsigned tree_base::visited

◆ volatile_flag

unsigned tree_base::volatile_flag

The documentation for this struct was generated from the following file: