| GCC Middle and Back End API Reference
    | 
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "rtl.h"#include "df.h"#include "insn-config.h"#include "recog.h"#include "tree-pass.h"
| Data Structures | |
| struct | web_entry | 
| Functions | |
| bool | unionfind_union (web_entry_base *first, web_entry_base *second) | 
| static void | union_match_dups (rtx_insn *insn, web_entry *def_entry, web_entry *use_entry, bool(*fun)(web_entry_base *, web_entry_base *)) | 
| void | union_defs (df_ref use, web_entry *def_entry, unsigned int *used, web_entry *use_entry, bool(*fun)(web_entry_base *, web_entry_base *)) | 
| static rtx | entry_register (web_entry *entry, df_ref ref, unsigned int *used) | 
| static void | replace_ref (df_ref ref, rtx reg) | 
| rtl_opt_pass * | make_pass_web (gcc::context *ctxt) | 
Find the corresponding register for the given entry.
References DF_REF_REAL_REG, dump_file, gen_reg_rtx(), GET_MODE, df_link::ref, web_entry::reg(), REG_ATTRS, REG_POINTER, REG_USERVAR_P, REGNO, web_entry::set_reg(), and web_entry_base::unionfind_root().
| rtl_opt_pass * make_pass_web | ( | gcc::context * | ctxt | ) | 
Replace the reference by REG.
References df_insn_rescan(), DF_REF_INSN, DF_REF_INSN_UID, DF_REF_REAL_LOC, DF_REF_REAL_REG, dump_file, df_link::ref, and REGNO.
| void union_defs | ( | df_ref | use, | 
| web_entry * | def_entry, | ||
| unsigned int * | used, | ||
| web_entry * | use_entry, | ||
| bool(* | fun )(web_entry_base *, web_entry_base *) ) | 
For each use, all possible defs reaching it must come in the same register, union them. FUN is the function that does the union. In USED, we keep the DF_REF_ID of the first uninitialized uses of a register, so that all uninitialized uses of the register can be combined into a single web. We actually offset it by 2, because the values 0 and 1 are reserved for use by entry_register.
References DF_REF_CHAIN, DF_REF_FLAGS, DF_REF_ID, DF_REF_INSN_INFO, DF_REF_READ_WRITE, DF_REF_REAL_REG, DF_REF_REG, FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_EQ_USE, df_insn_info::insn, link::next, NULL, REGNO, SET_DEST, SET_SRC, and single_set().
| 
 | static | 
For INSN, union all defs and uses that are linked by match_dup. FUN is the function that does the union.
References DF_INSN_INFO_DEFS, DF_INSN_INFO_GET, DF_INSN_INFO_USES, DF_REF_ID, DF_REF_LOC, DF_REF_NEXT_LOC, DF_REF_REAL_LOC, DF_REF_REGNO, extract_insn(), gcc_assert, i, df_insn_info::insn, NULL, OP_IN, OP_INOUT, and recog_data.
| bool unionfind_union | ( | web_entry_base * | first, | 
| web_entry_base * | second ) | 
Union sets. Return true if FIRST and SECOND points to the same web entry structure and nothing is done. Otherwise, return false.