GCC Middle and Back End API Reference
dataflow Struct Reference

#include <df.h>

Collaboration diagram for dataflow:

Data Fields

struct df_problemproblem
void * block_info
unsigned int block_info_size
alloc_pool block_pool
bitmap out_of_date_transfer_functions
void * problem_data
unsigned int local_flags
bool computed
bool solutions_dirty
bool optional_p

Detailed Description

   The specific instance of the problem to solve.  

Field Documentation

void* dataflow::block_info
     Array indexed by bb->index, that contains basic block problem and
     solution specific information.  

Referenced by df_get_n_blocks(), df_get_postorder(), and df_grow_bb_info().

unsigned int dataflow::block_info_size

Referenced by df_get_n_blocks().

alloc_pool dataflow::block_pool
     The pool to allocate the block_info from. 
bool dataflow::computed
     True if this problem of this instance has been initialized.  This
     is used by the dumpers to keep garbage out of the dumps if, for
     debugging a dump is produced before the first call to
     df_analyze after a new problem is added.  

Referenced by df_dump_region(), and df_print_word_regset().

unsigned int dataflow::local_flags
     Local flags for some of the problems. 
bool dataflow::optional_p
     If true, this pass is deleted by df_finish_pass.  This is never
     true for DF_SCAN and DF_LR.  It is true for DF_LIVE if optimize >
     1.  It is always true for the other problems.  

Referenced by df_finish_pass().

bitmap dataflow::out_of_date_transfer_functions
     The lr and live problems have their transfer functions recomputed
     only if necessary.  This is possible for them because, the
     problems are kept active for the entire backend and their
     transfer functions are indexed by the REGNO.  These are not
     defined for any other problem.  

Referenced by df_get_bb_info(), df_mark_solutions_dirty(), and df_set_bb_dirty().

void* dataflow::problem_data
     Other problem specific data that is not on a per basic block
     basis.  The structure is generally defined privately for the
     problem.  The exception being the scanning problem where it is
     fully public.  
bool dataflow::solutions_dirty
     True if the something has changed which invalidates the dataflow
     solutions.  Note that this bit is always true for all problems except
     lr and live.  

Referenced by df_simple_dataflow().

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