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: