GCC Middle and Back End API Reference
df_rd_problem_data Class Reference
Collaboration diagram for df_rd_problem_data:

Data Fields

bitmap_head sparse_invalidated_by_eh
 
bitmap_head dense_invalidated_by_eh
 
bitmap_obstack rd_bitmaps
 

Detailed Description

This problem plays a large number of games for the sake of efficiency. 1) The order of the bits in the bitvectors. After the scanning phase, all of the defs are sorted. All of the defs for the reg 0 are first, followed by all defs for reg 1 and so on. 2) There are two kill sets, one if the number of defs is less or equal to DF_SPARSE_THRESHOLD and another if the number of defs is greater. <= : Data is built directly in the kill set. > : One level of indirection is used to keep from generating long strings of 1 bits in the kill sets. Bitvectors that are indexed by the regnum are used to represent that there is a killing def for the register. The confluence and transfer functions use these along with the bitmap_clear_range call to remove ranges of bits without actually generating a knockout vector. The kill and sparse_kill and the dense_invalidated_by_eh and sparse_invalidated_by_eh both play this game.
Private data used to compute the solution for this problem. These data structures are not accessible outside of this module.

Field Documentation

◆ dense_invalidated_by_eh

bitmap_head df_rd_problem_data::dense_invalidated_by_eh

◆ rd_bitmaps

bitmap_obstack df_rd_problem_data::rd_bitmaps

◆ sparse_invalidated_by_eh

bitmap_head df_rd_problem_data::sparse_invalidated_by_eh

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