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_headlivein
 
bitmap_headliveout
 
int num_blocks
 
int * work_stack
 
int * stack_top
 
bitmap_obstack livein_obstack
 
bitmap_obstack liveout_obstack
 

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

◆ livein

◆ livein_obstack

bitmap_obstack tree_live_info_d::livein_obstack

◆ liveout

◆ liveout_obstack

bitmap_obstack tree_live_info_d::liveout_obstack

◆ map

◆ num_blocks

int tree_live_info_d::num_blocks

Referenced by new_tree_live_info().

◆ stack_top

int* tree_live_info_d::stack_top

◆ work_stack

int* tree_live_info_d::work_stack

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