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

Data Fields

bitmap statics_read
bitmap statics_written

Detailed Description

Callgraph based analysis of static variables.
   Copyright (C) 2004-2024 Free Software Foundation, Inc.
   Contributed by Kenneth Zadeck <zadeck@naturalbridge.com>

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

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
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
This file gathers information about how variables whose scope is
confined to the compilation unit are used.

The transitive call site specific clobber effects are computed
for the variables whose scope is contained within this compilation

First each function and static variable initialization is analyzed
to determine which local static variables are either read, written,
or have their address taken.  Any local static that has its address
taken is removed from consideration.  Once the local read and
writes are determined, a transitive closure of this information is
performed over the call graph to determine the worst case set of
side effects of each call.  In later parts of the compiler, these
local and global sets are examined to make the call clobbering less
traumatic, promote some statics to registers, and improve aliasing
The static variables defined within the compilation unit that are
loaded or stored directly by function that owns this structure.   

Field Documentation

◆ statics_read

bitmap ipa_reference_local_vars_info_d::statics_read

◆ statics_written

bitmap ipa_reference_local_vars_info_d::statics_written

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