GCC Middle and Back End API Reference
tree_live_info_d Struct Reference

#include <tree-ssa-live.h>

Collaboration diagram for tree_live_info_d:

Data Fields

var_map map
bitmap global
bitmap_headlivein
bitmap_headliveout
int num_blocks
int * work_stack
int * stack_top

Detailed Description

    ---------------- live on entry/exit info ------------------------------

    This structure is used to represent live range information on SSA based
    trees. A partition map must be provided, and based on the active partitions,
    live-on-entry information and live-on-exit information can be calculated.
    As well, partitions are marked as to whether they are global (live
    outside the basic block they are defined in).

    The live-on-entry information is per block.  It provide a bitmap for
    each block which has a bit set for each partition that is live on entry to
    that block.

    The live-on-exit information is per block.  It provides a bitmap for each
    block indicating which partitions are live on exit from the block.

    For the purposes of this implementation, we treat the elements of a PHI
    as follows:

       Uses in a PHI are considered LIVE-ON-EXIT to the block from which they
       originate. They are *NOT* considered live on entry to the block
       containing the PHI node.

       The Def of a PHI node is *not* considered live on entry to the block.
       It is considered to be "define early" in the block. Picture it as each
       block having a stmt (or block-preheader) before the first real stmt in
       the block which defines all the variables that are defined by PHIs.

    -----------------------------------------------------------------------  

Field Documentation

bitmap tree_live_info_d::global
     Bitmap indicating which partitions are global.  

Referenced by register_ssa_partition().

bitmap_head* tree_live_info_d::livein
     Bitmaps of live on entry blocks for partition elements.  

Referenced by register_ssa_partition().

bitmap_head* tree_live_info_d::liveout
     Bitmaps of what variables are live on exit for a basic blocks.  

Referenced by dump_var_map(), loe_visit_block(), partition_is_global(), register_ssa_partition(), and set_var_live_on_entry().

var_map tree_live_info_d::map
int tree_live_info_d::num_blocks
     Number of basic blocks when live on exit calculated.  

Referenced by register_ssa_partition().

int* tree_live_info_d::stack_top
     Top of workstack.  
int* tree_live_info_d::work_stack
     Vector used when creating live ranges as a visited stack.  

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