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

Data Fields

HOST_WIDE_INT offset
HOST_WIDE_INT size
tree base
tree expr
tree type
gimple stmt
struct accessnext_grp
struct accessgroup_representative
struct accessfirst_child
struct accessnext_sibling
struct assign_linkfirst_link
struct assign_linklast_link
struct accessnext_queued
tree replacement_decl
unsigned write: 1
unsigned non_addressable: 1
unsigned grp_queued: 1
unsigned grp_write: 1
unsigned grp_read: 1
unsigned grp_assignment_read: 1
unsigned grp_assignment_write: 1
unsigned grp_scalar_read: 1
unsigned grp_scalar_write: 1
unsigned grp_total_scalarization: 1
unsigned grp_hint: 1
unsigned grp_covered: 1
unsigned grp_unscalarizable_region: 1
unsigned grp_unscalarized_data: 1
unsigned grp_partial_lhs: 1
unsigned grp_to_be_replaced: 1
unsigned grp_to_be_debug_replaced: 1
unsigned grp_no_warning: 1
unsigned grp_maybe_modified: 1
unsigned grp_scalar_ptr: 1
unsigned grp_not_necessarilly_dereferenced: 1

Detailed Description

ACCESS represents each access to an aggregate variable (as a whole or a
   part).  It can also represent a group of accesses that refer to exactly the
   same fragment of an aggregate (i.e. those that have exactly the same offset
   and size).  Such representatives for a single aggregate, once determined,
   are linked in a linked list and have the group fields set.

   Moreover, when doing intraprocedural SRA, a tree is built from those
   representatives (by the means of first_child and next_sibling pointers), in
   which all items in a subtree are "within" the root, i.e. their offset is
   greater or equal to offset of the root and offset+size is smaller or equal
   to offset+size of the root.  Children of an access are sorted by offset.

   Note that accesses to parts of vector and complex number types always
   represented by an access to the whole complex number or a vector.  It is a
   duty of the modifying functions to replace them appropriately.   

Field Documentation

unsigned access::grp_assignment_read
unsigned access::grp_assignment_write
unsigned access::grp_queued
unsigned access::grp_scalar_ptr
unsigned access::grp_scalar_read
unsigned access::grp_scalar_write
unsigned access::grp_unscalarized_data
struct assign_link * access::last_link
struct access* access::next_queued
unsigned access::non_addressable

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