GCC Middle and Back End API Reference
chain Struct Reference
Collaboration diagram for chain:

Data Fields

enum chain_type type
enum tree_code op
tree rslt_type
struct chainch1
struct chainch2
vec< drefrefs
unsigned length
vec< treevars
vec< treeinits
unsigned has_max_use_after: 1
unsigned all_always_accessed: 1
unsigned combined: 1

Detailed Description

Chains of data references.


Field Documentation

unsigned chain::all_always_accessed

True if all the memory references in the chain are always accessed.

Referenced by get_chain_root(), and order_drefs().

struct chain* chain::ch1
struct chain * chain::ch2
unsigned chain::combined

True if this chain was combined together with some other chain.

Referenced by replace_names_by_phis().

unsigned chain::has_max_use_after

True if there is a use of a variable with the maximal distance that comes after the root in the loop.

Referenced by find_looparound_phi().

vec<tree> chain::inits

Initializers for the variables.

unsigned chain::length

The maximum distance of the reference in the chain from the root.

Referenced by find_looparound_phi(), remove_name_from_operation(), and single_nonlooparound_use().

enum tree_code chain::op

For combination chains, the operator and the two chains that are combined, and the type of the result.

tree chain::rslt_type
enum chain_type chain::type

Type of the chain.

Referenced by get_chain_root(), and replace_names_by_phis().

vec<tree> chain::vars

The variables used to copy the value throughout iterations.

Referenced by dump_chains(), and single_nonlooparound_use().


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