diff options
author | Kenneth Zadeck <zadeck@naturalbridge.com> | 2006-05-23 20:49:11 +0000 |
---|---|---|
committer | Kenneth Zadeck <zadeck@gcc.gnu.org> | 2006-05-23 20:49:11 +0000 |
commit | b11550aa902ed4dca28bea67dcf81cfefe64847e (patch) | |
tree | 14e72d251b2751b6da44611981541d07057f5a7f /gcc/df.h | |
parent | 29a1da1c303b0bca58faf0963ae250eb460c66ba (diff) | |
download | gcc-b11550aa902ed4dca28bea67dcf81cfefe64847e.zip gcc-b11550aa902ed4dca28bea67dcf81cfefe64847e.tar.gz gcc-b11550aa902ed4dca28bea67dcf81cfefe64847e.tar.bz2 |
df-core.c: Added to header comments.
2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
* df-core.c: Added to header comments.
* df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
df_ur_bb_info, df_urec_bb_info): Added comments.
* df-problems (df_ref_bitmap, ru, rd, lr, ur,
urec, ri problems): Fixed header comments.
(df_ru_transfer_function): Fixed in-out set dyslexia when copying
code from df_rd_transfer_function.
From-SVN: r114024
Diffstat (limited to 'gcc/df.h')
-rw-r--r-- | gcc/df.h | 76 |
1 files changed, 53 insertions, 23 deletions
@@ -491,55 +491,85 @@ struct df_scan_bb_info }; -/* Reaching uses. */ +/* Reaching uses. All bitmaps are indexed by the id field of the ref + except sparse_kill (see below). */ struct df_ru_bb_info { + /* Local sets to describe the basic blocks. */ + /* The kill set is the set of uses that are killed in this block. + However, if the number of uses for this register is greater than + DF_SPARSE_THRESHOLD, the sparse_kill is used instead. In + sparse_kill, each register gets a slot and a 1 in this bitvector + means that all of the uses of that register are killed. This is + a very useful efficiency hack in that it keeps from having push + around big groups of 1s. This is implemened by the + bitmap_clear_range call. */ + bitmap kill; bitmap sparse_kill; - bitmap gen; - bitmap in; - bitmap out; + bitmap gen; /* The set of uses generated in this block. */ + + /* The results of the dataflow problem. */ + bitmap in; /* At the top of the block. */ + bitmap out; /* At the bottom of the block. */ }; -/* Reaching definitions. */ +/* Reaching definitions. All bitmaps are indexed by the id field of + the ref except sparse_kill (see above). */ struct df_rd_bb_info { - bitmap kill; + /* Local sets to describe the basic blocks. See the note in the RU + datastructures for kill and sparse_kill. */ + bitmap kill; bitmap sparse_kill; - bitmap gen; - bitmap in; - bitmap out; + bitmap gen; /* The set of defs generated in this block. */ + + /* The results of the dataflow problem. */ + bitmap in; /* At the top of the block. */ + bitmap out; /* At the bottom of the block. */ }; -/* Live registers. */ +/* Live registers. All bitmaps are referenced by the register number. */ struct df_lr_bb_info { - bitmap def; - bitmap use; - bitmap in; - bitmap out; + /* Local sets to describe the basic blocks. */ + bitmap def; /* The set of registers set in this block. */ + bitmap use; /* The set of registers used in this block. */ + + /* The results of the dataflow problem. */ + bitmap in; /* At the top of the block. */ + bitmap out; /* At the bottom of the block. */ }; -/* Uninitialized registers. */ +/* Uninitialized registers. All bitmaps are referenced by the register number. */ struct df_ur_bb_info { - bitmap kill; - bitmap gen; - bitmap in; - bitmap out; + /* Local sets to describe the basic blocks. */ + bitmap kill; /* The set of registers unset in this block. Calls, + for instance, unset registers. */ + bitmap gen; /* The set of registers set in this block. */ + + /* The results of the dataflow problem. */ + bitmap in; /* At the top of the block. */ + bitmap out; /* At the bottom of the block. */ }; -/* Uninitialized registers. */ +/* Uninitialized registers. All bitmaps are referenced by the register number. */ struct df_urec_bb_info { - bitmap earlyclobber; + /* Local sets to describe the basic blocks. */ + bitmap earlyclobber; /* The set of registers that are referenced + with an an early clobber mode. */ + /* Kill and gen are defined as in the UR problem. */ bitmap kill; bitmap gen; - bitmap in; - bitmap out; + + /* The results of the dataflow problem. */ + bitmap in; /* At the top of the block. */ + bitmap out; /* At the bottom of the block. */ }; |