GCC Middle and Back End API Reference
|
#include <tree-ssa-sccvn.h>
Data Fields | |
vn_avail * | next |
int | location |
int | leader |
struct vn_ssa_aux * | next_undo |
Instead of having a local availability lattice for each basic-block and availability at X defined as union of the local availabilities at X and its dominators we're turning this upside down and track availability per value given values are usually made available at very few points. So we have a chain of LOCATION, LEADER entries where LOCATION is specifying the basic-block LEADER is made available for VALUE. We prepend to this chain in RPO order thus for iteration we can simply remove the last entries. LOCATION is the basic-block index and LEADER is its SSA name version.
int vn_avail::leader |
Referenced by rpo_elim::eliminate_avail(), and rpo_elim::eliminate_push_avail().
int vn_avail::location |
Referenced by rpo_elim::eliminate_avail(), and rpo_elim::eliminate_push_avail().
vn_avail* vn_avail::next |
Referenced by do_rpo_vn_1(), do_unwind(), rpo_elim::eliminate_avail(), and rpo_elim::eliminate_push_avail().
struct vn_ssa_aux* vn_avail::next_undo |
Referenced by do_unwind(), and rpo_elim::eliminate_push_avail().