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: