620#define DF_SCAN_BB_INFO(BB) (df_scan_get_bb_info ((BB)->index))
621#define DF_RD_BB_INFO(BB) (df_rd_get_bb_info ((BB)->index))
622#define DF_LR_BB_INFO(BB) (df_lr_get_bb_info ((BB)->index))
623#define DF_LIVE_BB_INFO(BB) (df_live_get_bb_info ((BB)->index))
624#define DF_WORD_LR_BB_INFO(BB) (df_word_lr_get_bb_info ((BB)->index))
625#define DF_MD_BB_INFO(BB) (df_md_get_bb_info ((BB)->index))
626#define DF_MIR_BB_INFO(BB) (df_mir_get_bb_info ((BB)->index))
630#define DF_LIVE_IN(BB) (&DF_LIVE_BB_INFO (BB)->in)
631#define DF_LIVE_OUT(BB) (&DF_LIVE_BB_INFO (BB)->out)
633#define DF_MIR_IN(BB) (&DF_MIR_BB_INFO (BB)->in)
634#define DF_MIR_OUT(BB) (&DF_MIR_BB_INFO (BB)->out)
639#define DF_LR_IN(BB) (&DF_LR_BB_INFO (BB)->in)
640#define DF_LR_OUT(BB) (&DF_LR_BB_INFO (BB)->out)
645#define DF_WORD_LR_IN(BB) (&DF_WORD_LR_BB_INFO (BB)->in)
646#define DF_WORD_LR_OUT(BB) (&DF_WORD_LR_BB_INFO (BB)->out)
651#define DF_REF_REAL_REG(REF) (GET_CODE ((REF)->base.reg) == SUBREG \
652 ? SUBREG_REG ((REF)->base.reg) : ((REF)->base.reg))
653#define DF_REF_REGNO(REF) ((REF)->base.regno)
654#define DF_REF_REAL_LOC(REF) (GET_CODE (*((REF)->regular_ref.loc)) == SUBREG \
655 ? &SUBREG_REG (*((REF)->regular_ref.loc)) : ((REF)->regular_ref.loc))
656#define DF_REF_REG(REF) ((REF)->base.reg)
657#define DF_REF_LOC(REF) (DF_REF_CLASS (REF) == DF_REF_REGULAR ? \
658 (REF)->regular_ref.loc : NULL)
659#define DF_REF_BB(REF) (DF_REF_IS_ARTIFICIAL (REF) \
660 ? (REF)->artificial_ref.bb \
661 : BLOCK_FOR_INSN (DF_REF_INSN (REF)))
662#define DF_REF_BBNO(REF) (DF_REF_BB (REF)->index)
663#define DF_REF_INSN_INFO(REF) ((REF)->base.insn_info)
664#define DF_REF_INSN(REF) ((REF)->base.insn_info->insn)
665#define DF_REF_INSN_UID(REF) (INSN_UID (DF_REF_INSN(REF)))
666#define DF_REF_CLASS(REF) ((REF)->base.cl)
667#define DF_REF_TYPE(REF) ((REF)->base.type)
668#define DF_REF_CHAIN(REF) ((REF)->base.chain)
669#define DF_REF_ID(REF) ((REF)->base.id)
670#define DF_REF_FLAGS(REF) ((REF)->base.flags)
671#define DF_REF_FLAGS_IS_SET(REF, v) ((DF_REF_FLAGS (REF) & (v)) != 0)
672#define DF_REF_FLAGS_SET(REF, v) (DF_REF_FLAGS (REF) |= (v))
673#define DF_REF_FLAGS_CLEAR(REF, v) (DF_REF_FLAGS (REF) &= ~(v))
674#define DF_REF_ORDER(REF) ((REF)->base.ref_order)
678#define DF_REF_IS_ARTIFICIAL(REF) (DF_REF_CLASS (REF) == DF_REF_ARTIFICIAL)
679#define DF_REF_REG_MARK(REF) (DF_REF_FLAGS_SET ((REF),DF_REF_REG_MARKER))
680#define DF_REF_REG_UNMARK(REF) (DF_REF_FLAGS_CLEAR ((REF),DF_REF_REG_MARKER))
681#define DF_REF_IS_REG_MARKED(REF) (DF_REF_FLAGS_IS_SET ((REF),DF_REF_REG_MARKER))
682#define DF_REF_NEXT_LOC(REF) ((REF)->base.next_loc)
683#define DF_REF_NEXT_REG(REF) ((REF)->base.next_reg)
684#define DF_REF_PREV_REG(REF) ((REF)->base.prev_reg)
687#define DF_REF_EXTRACT_WIDTH(REF) ((REF)->extract_ref.width)
688#define DF_REF_EXTRACT_OFFSET(REF) ((REF)->extract_ref.offset)
689#define DF_REF_EXTRACT_MODE(REF) ((REF)->extract_ref.mode)
692#define DF_REF_REG_DEF_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_DEF)
693#define DF_REF_REG_USE_P(REF) (!DF_REF_REG_DEF_P (REF))
694#define DF_REF_REG_MEM_STORE_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_MEM_STORE)
695#define DF_REF_REG_MEM_LOAD_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_MEM_LOAD)
696#define DF_REF_REG_MEM_P(REF) (DF_REF_REG_MEM_STORE_P (REF) \
697 || DF_REF_REG_MEM_LOAD_P (REF))
699#define DF_MWS_REG_DEF_P(MREF) (DF_MWS_TYPE (MREF) == DF_REF_REG_DEF)
700#define DF_MWS_REG_USE_P(MREF) (!DF_MWS_REG_DEF_P (MREF))
701#define DF_MWS_NEXT(MREF) ((MREF)->next)
702#define DF_MWS_TYPE(MREF) ((MREF)->type)
715#define DF_DEFS_TABLE_SIZE() (df->def_info.table_size)
716#define DF_DEFS_GET(ID) (df->def_info.refs[(ID)])
717#define DF_DEFS_SET(ID,VAL) (df->def_info.refs[(ID)]=(VAL))
718#define DF_DEFS_COUNT(ID) (df->def_info.count[(ID)])
719#define DF_DEFS_BEGIN(ID) (df->def_info.begin[(ID)])
720#define DF_USES_TABLE_SIZE() (df->use_info.table_size)
721#define DF_USES_GET(ID) (df->use_info.refs[(ID)])
722#define DF_USES_SET(ID,VAL) (df->use_info.refs[(ID)]=(VAL))
723#define DF_USES_COUNT(ID) (df->use_info.count[(ID)])
724#define DF_USES_BEGIN(ID) (df->use_info.begin[(ID)])
728#define DF_REG_SIZE(DF) (df->regs_inited)
729#define DF_REG_DEF_GET(REG) (df->def_regs[(REG)])
730#define DF_REG_DEF_CHAIN(REG) (df->def_regs[(REG)]->reg_chain)
731#define DF_REG_DEF_COUNT(REG) (df->def_regs[(REG)]->n_refs)
732#define DF_REG_USE_GET(REG) (df->use_regs[(REG)])
733#define DF_REG_USE_CHAIN(REG) (df->use_regs[(REG)]->reg_chain)
734#define DF_REG_USE_COUNT(REG) (df->use_regs[(REG)]->n_refs)
735#define DF_REG_EQ_USE_GET(REG) (df->eq_use_regs[(REG)])
736#define DF_REG_EQ_USE_CHAIN(REG) (df->eq_use_regs[(REG)]->reg_chain)
737#define DF_REG_EQ_USE_COUNT(REG) (df->eq_use_regs[(REG)]->n_refs)
741#define DF_REGNO_FIRST_DEF(REGNUM) \
742(DF_REG_DEF_GET(REGNUM) ? DF_REG_DEF_GET (REGNUM) : 0)
743#define DF_REGNO_LAST_USE(REGNUM) \
744(DF_REG_USE_GET(REGNUM) ? DF_REG_USE_GET (REGNUM) : 0)
748#define DF_INSN_SIZE() ((df)->insns_size)
749#define DF_INSN_INFO_GET(INSN) (df->insns[(INSN_UID (INSN))])
750#define DF_INSN_INFO_SET(INSN,VAL) (df->insns[(INSN_UID (INSN))]=(VAL))
751#define DF_INSN_INFO_LUID(II) ((II)->luid)
752#define DF_INSN_INFO_DEFS(II) ((II)->defs)
753#define DF_INSN_INFO_USES(II) ((II)->uses)
754#define DF_INSN_INFO_EQ_USES(II) ((II)->eq_uses)
755#define DF_INSN_INFO_MWS(II) ((II)->mw_hardregs)
757#define DF_INSN_LUID(INSN) (DF_INSN_INFO_LUID (DF_INSN_INFO_GET (INSN)))
758#define DF_INSN_DEFS(INSN) (DF_INSN_INFO_DEFS (DF_INSN_INFO_GET (INSN)))
759#define DF_INSN_USES(INSN) (DF_INSN_INFO_USES (DF_INSN_INFO_GET (INSN)))
760#define DF_INSN_EQ_USES(INSN) (DF_INSN_INFO_EQ_USES (DF_INSN_INFO_GET (INSN)))
762#define DF_INSN_UID_GET(UID) (df->insns[(UID)])
763#define DF_INSN_UID_SET(UID,VAL) (df->insns[(UID)]=(VAL))
764#define DF_INSN_UID_SAFE_GET(UID) (((unsigned)(UID) < DF_INSN_SIZE ()) \
765 ? DF_INSN_UID_GET (UID) \
767#define DF_INSN_UID_LUID(INSN) (DF_INSN_UID_GET (INSN)->luid)
768#define DF_INSN_UID_DEFS(INSN) (DF_INSN_UID_GET (INSN)->defs)
769#define DF_INSN_UID_USES(INSN) (DF_INSN_UID_GET (INSN)->uses)
770#define DF_INSN_UID_EQ_USES(INSN) (DF_INSN_UID_GET (INSN)->eq_uses)
771#define DF_INSN_UID_MWS(INSN) (DF_INSN_UID_GET (INSN)->mw_hardregs)
773#define FOR_EACH_INSN_INFO_DEF(ITER, INSN) \
774 for (ITER = DF_INSN_INFO_DEFS (INSN); ITER; ITER = DF_REF_NEXT_LOC (ITER))
776#define FOR_EACH_INSN_INFO_USE(ITER, INSN) \
777 for (ITER = DF_INSN_INFO_USES (INSN); ITER; ITER = DF_REF_NEXT_LOC (ITER))
779#define FOR_EACH_INSN_INFO_EQ_USE(ITER, INSN) \
780 for (ITER = DF_INSN_INFO_EQ_USES (INSN); ITER; ITER = DF_REF_NEXT_LOC (ITER))
782#define FOR_EACH_INSN_INFO_MW(ITER, INSN) \
783 for (ITER = DF_INSN_INFO_MWS (INSN); ITER; ITER = DF_MWS_NEXT (ITER))
785#define FOR_EACH_INSN_DEF(ITER, INSN) \
786 FOR_EACH_INSN_INFO_DEF(ITER, DF_INSN_INFO_GET (INSN))
788#define FOR_EACH_INSN_USE(ITER, INSN) \
789 FOR_EACH_INSN_INFO_USE(ITER, DF_INSN_INFO_GET (INSN))
791#define FOR_EACH_INSN_EQ_USE(ITER, INSN) \
792 FOR_EACH_INSN_INFO_EQ_USE(ITER, DF_INSN_INFO_GET (INSN))
794#define FOR_EACH_ARTIFICIAL_USE(ITER, BB_INDEX) \
795 for (ITER = df_get_artificial_uses (BB_INDEX); ITER; \
796 ITER = DF_REF_NEXT_LOC (ITER))
798#define FOR_EACH_ARTIFICIAL_DEF(ITER, BB_INDEX) \
799 for (ITER = df_get_artificial_defs (BB_INDEX); ITER; \
800 ITER = DF_REF_NEXT_LOC (ITER))
941#define df_scan (df->problems_by_index[DF_SCAN])
942#define df_rd (df->problems_by_index[DF_RD])
943#define df_lr (df->problems_by_index[DF_LR])
944#define df_lr_dce (df->problems_by_index[DF_LR_DCE])
945#define df_live (df->problems_by_index[DF_LIVE])
946#define df_chain (df->problems_by_index[DF_CHAIN])
947#define df_word_lr (df->problems_by_index[DF_WORD_LR])
948#define df_note (df->problems_by_index[DF_NOTE])
949#define df_md (df->problems_by_index[DF_MD])
950#define df_mir (df->problems_by_index[DF_MIR])
988extern void df_check_cfg_clean (
void);
1107 if (index < df_scan->block_info_size)
1116 if (index < df_rd->block_info_size)
1125 if (index < df_lr->block_info_size)
1134 if (index < df_md->block_info_size)
1143 if (index < df_live->block_info_size)
1152 if (index < df_word_lr->block_info_size)
1161 if (index < df_mir->block_info_size)
bitmap_head hardware_regs_used
Definition df.h:569
int num_problems_defined
Definition df.h:567
bitmap_head regular_block_artificial_uses
Definition df.h:572
int * postorder
Definition df.h:585
unsigned int regs_inited
Definition df.h:561
bool analyze_subset
Definition df.h:613
bitmap blocks_to_analyze
Definition df.h:547
bitmap_head insns_to_rescan
Definition df.h:583
bitmap entry_block_defs
Definition df.h:577
bitmap_head insns_to_delete
Definition df.h:582
unsigned int * hard_regs_live_count
Definition df.h:601
struct dataflow * problems_in_order[DF_LAST_PROBLEM_PLUS1]
Definition df.h:540
int * postorder_inverted
Definition df.h:587
struct df_reg_info ** use_regs
Definition df.h:558
int n_blocks
Definition df.h:589
struct df_insn_info ** insns
Definition df.h:564
struct dataflow * problems_by_index[DF_LAST_PROBLEM_PLUS1]
Definition df.h:541
struct df_ref_info def_info
Definition df.h:552
struct df_ref_info use_info
Definition df.h:553
struct df_reg_info ** eq_use_regs
Definition df.h:559
bool redo_entry_and_exit
Definition df.h:617
struct df_reg_info ** def_regs
Definition df.h:557
bitmap_head insns_to_notes_rescan
Definition df.h:584
bitmap_head eh_block_artificial_uses
Definition df.h:575
unsigned int regs_size
Definition df.h:560
unsigned int insns_size
Definition df.h:565
unsigned int ref_order
Definition df.h:605
int changeable_flags
Definition df.h:609
bitmap exit_block_uses
Definition df.h:578
bitmap_head kill
Definition df.h:891
bitmap_head out
Definition df.h:897
bitmap_head gen
Definition df.h:893
bitmap_head in
Definition df.h:896
bitmap_head def
Definition df.h:873
bitmap_head in
Definition df.h:878
bitmap_head use
Definition df.h:875
bitmap_head out
Definition df.h:879
bitmap_head gen
Definition df.h:856
bitmap_head in
Definition df.h:861
bitmap_head kill
Definition df.h:857
bitmap_head init
Definition df.h:858
bitmap_head out
Definition df.h:862
bitmap_head kill
Definition df.h:925
bitmap_head in
Definition df.h:931
bitmap_head gen
Definition df.h:927
bool con_visited
Definition df.h:933
bitmap_head out
Definition df.h:932
bitmap_head in
Definition df.h:844
bitmap_head sparse_kill
Definition df.h:840
bitmap_head gen
Definition df.h:841
bitmap_head kill
Definition df.h:839
bitmap_head out
Definition df.h:845
bitmap_head def
Definition df.h:910
bitmap_head out
Definition df.h:916
bitmap_head use
Definition df.h:912
bitmap_head in
Definition df.h:915
Definition alloc-pool.h:482
struct basic_block_def * basic_block
Definition coretypes.h:355
class edge_def * edge
Definition coretypes.h:352
const class bitmap_head * const_bitmap
Definition coretypes.h:52
class bitmap_head * bitmap
Definition coretypes.h:51
bool df_insn_rescan(rtx_insn *)
Definition df-scan.cc:1012
void df_chain_dump(struct df_link *, FILE *)
Definition df-problems.cc:62
void df_process_deferred_rescans(void)
Definition df-scan.cc:1209
void df_scan_blocks(void)
Definition df-scan.cc:562
void df_update_exit_block_uses(void)
Definition df-scan.cc:3786
void df_md_simulate_artificial_defs_at_top(basic_block, bitmap)
Definition df-problems.cc:4509
df_ref df_get_artificial_uses(unsigned int bb_index)
Definition df.h:1212
void df_rd_add_problem(void)
Definition df-problems.cc:707
void df_chain_add_problem(unsigned int)
Definition df-problems.cc:2778
void df_print_word_regset(FILE *file, const_bitmap r)
Definition df-core.cc:2181
#define df_rd
Definition df.h:942
void df_mir_simulate_one_insn(basic_block, rtx_insn *, bitmap, bitmap)
Definition df-problems.cc:2317
void df_set_bb_dirty(basic_block)
Definition df-core.cc:1629
void df_notes_rescan(rtx_insn *)
Definition df-scan.cc:1933
void df_md_add_problem(void)
Definition df-problems.cc:4831
void df_recompute_luids(basic_block)
Definition df-scan.cc:3241
bool df_word_lr_mark_ref(df_ref, bool, bitmap)
Definition df-problems.cc:2903
void df_simulate_find_defs(rtx_insn *, bitmap)
Definition df-problems.cc:3849
void df_rd_simulate_artificial_defs_at_top(basic_block, bitmap)
Definition df-problems.cc:239
int df_get_n_blocks(enum df_flow_dir)
Definition df-core.cc:1491
df_ref_type
Definition df.h:76
@ DF_REF_REG_MEM_STORE
Definition df.h:77
@ DF_REF_REG_DEF
Definition df.h:76
@ DF_REF_REG_USE
Definition df.h:76
@ DF_REF_REG_MEM_LOAD
Definition df.h:77
void df_print_regset(FILE *file, const_bitmap r)
Definition df-core.cc:2156
#define df_scan
Definition df.h:941
void df_bb_delete(int)
Definition df-core.cc:1825
class df_word_lr_bb_info * df_word_lr_get_bb_info(unsigned int index)
Definition df.h:1150
bool df_reg_used(rtx_insn *, rtx)
Definition df-core.cc:2066
union df_ref_d * df_ref
Definition df.h:420
void df_chain_copy(df_ref, struct df_link *)
Definition df-problems.cc:2419
df_ref df_bb_regno_last_def_find(basic_block, unsigned int)
Definition df-core.cc:1977
void df_grow_reg_info(void)
Definition df-scan.cc:454
df_ref df_single_use(const df_insn_info *info)
Definition df.h:1231
bool df_get_bb_dirty(basic_block)
Definition df-core.cc:1617
void df_insn_debug_regno(rtx_insn *, FILE *)
Definition df-core.cc:2466
int df_set_flags(int)
Definition df-core.cc:464
void df_finish_pass(bool)
Definition df-core.cc:621
void(* df_init_function)(bitmap)
Definition df.h:210
bitmap df_get_live_in(basic_block bb)
Definition df.h:1189
void df_set_blocks(bitmap)
Definition df-core.cc:489
void df_word_lr_simulate_uses(rtx_insn *, bitmap)
Definition df-problems.cc:3177
void df_simulate_one_insn_forwards(basic_block, rtx_insn *, bitmap)
Definition df-problems.cc:4031
void df_scan_add_problem(void)
Definition df-scan.cc:435
void df_word_lr_add_problem(void)
Definition df-problems.cc:3145
void debug_df_insn(rtx_insn *)
Definition df-core.cc:2525
void df_bb_refs_record(int, bool)
Definition df-scan.cc:3332
class df_md_bb_info * df_md_get_bb_info(unsigned int index)
Definition df.h:1132
void df_rd_simulate_one_insn(basic_block, rtx_insn *, bitmap)
Definition df-problems.cc:259
void(* df_dataflow_function)(struct dataflow *, bitmap, int *, int)
Definition df.h:213
void(* df_free_function)(void)
Definition df.h:230
void(* df_verify_solution_end)(void)
Definition df.h:250
df_ref df_bb_regno_first_def_find(basic_block, unsigned int)
Definition df-core.cc:1956
void df_lr_add_problem(void)
Definition df-problems.cc:1311
void(* df_alloc_function)(bitmap)
Definition df.h:192
bool df_insn_rescan_debug_internal(rtx_insn *)
Definition df-scan.cc:1102
void df_simulate_finalize_backwards(basic_block, bitmap)
Definition df-problems.cc:3983
void df_dump_insn_top(const rtx_insn *, FILE *)
Definition df-core.cc:2361
class df_d * df
Definition df-core.cc:410
void df_regno_debug(unsigned int, FILE *)
Definition df-core.cc:2484
df_changeable_flags
Definition df.h:462
@ DF_RD_PRUNE_DEAD_DEFS
Definition df.h:484
@ DF_DEFER_INSN_RESCAN
Definition df.h:479
@ DF_VERIFY_SCHEDULED
Definition df.h:486
@ DF_EQ_NOTES
Definition df.h:468
@ DF_NO_INSN_RESCAN
Definition df.h:474
@ DF_NO_REGS_EVER_LIVE
Definition df.h:469
@ DF_LR_RUN_DCE
Definition df.h:465
@ DF_NO_HARD_REGS
Definition df.h:466
void df_simulate_uses(rtx_insn *, bitmap)
Definition df-problems.cc:3907
void(* df_dump_insn_problem_function)(const rtx_insn *, FILE *)
Definition df.h:244
df_problem_id
Definition df.h:47
@ DF_WORD_LR
Definition df.h:54
@ DF_LR
Definition df.h:49
@ DF_LAST_PROBLEM_PLUS1
Definition df.h:59
@ DF_LIVE
Definition df.h:51
@ DF_CHAIN
Definition df.h:53
@ DF_RD
Definition df.h:52
@ DF_SCAN
Definition df.h:48
@ DF_NOTE
Definition df.h:55
@ DF_MIR
Definition df.h:57
@ DF_MD
Definition df.h:56
@ DF_LR_DCE
Definition df.h:50
void df_analyze()
Definition df-core.cc:1284
df_ref_class
Definition df.h:71
@ DF_REF_BASE
Definition df.h:71
@ DF_REF_REGULAR
Definition df.h:71
@ DF_REF_ARTIFICIAL
Definition df.h:71
#define DF_LR_IN(BB)
Definition df.h:639
void df_update_entry_block_defs(void)
Definition df-scan.cc:3609
struct df_insn_info * df_insn_create_insn_record(rtx_insn *)
Definition df-scan.cc:813
void df_insn_change_bb(rtx_insn *, basic_block)
Definition df-scan.cc:1742
bitmap_obstack df_bitmap_obstack
Definition df-core.cc:403
void df_dump_top(basic_block, FILE *)
Definition df-core.cc:2317
void(* df_dump_problem_function)(FILE *)
Definition df.h:238
df_ref df_bb_regno_only_def_find(basic_block, unsigned int)
Definition df-core.cc:1999
#define df_word_lr
Definition df.h:947
void df_ref_change_reg_with_loc(rtx, unsigned int)
Definition df-scan.cc:1883
void df_scan_alloc(bitmap)
Definition df-scan.cc:229
df_ref df_find_def(rtx_insn *, rtx)
Definition df-core.cc:2014
void debug_df_ref(df_ref)
Definition df-core.cc:2547
#define DF_LIVE_IN(BB)
Definition df.h:630
#define DF_INSN_INFO_DEFS(II)
Definition df.h:752
#define df_mir
Definition df.h:950
class df_rd_bb_info * df_rd_get_bb_info(unsigned int index)
Definition df.h:1114
void debug_df_defno(unsigned int)
Definition df-core.cc:2554
void df_dump(FILE *)
Definition df-core.cc:2217
void df_simulate_defs(rtx_insn *, bitmap)
Definition df-problems.cc:3888
void df_regs_chain_dump(df_ref, FILE *)
Definition df-core.cc:2403
void df_grow_bb_info(struct dataflow *)
Definition df-core.cc:1649
void df_maybe_reorganize_def_refs(enum df_ref_order)
Definition df-scan.cc:1704
void debug_df_useno(unsigned int)
Definition df-core.cc:2561
df_ref_order
Definition df.h:162
@ DF_REF_ORDER_BY_REG_WITH_NOTES
Definition df.h:178
@ DF_REF_ORDER_UNORDERED_WITH_NOTES
Definition df.h:169
@ DF_REF_ORDER_UNORDERED
Definition df.h:168
@ DF_REF_ORDER_BY_INSN_WITH_NOTES
Definition df.h:186
@ DF_REF_ORDER_BY_INSN
Definition df.h:182
@ DF_REF_ORDER_BY_REG
Definition df.h:174
@ DF_REF_ORDER_NO_TABLE
Definition df.h:164
unsigned int df_hard_reg_used_count(unsigned int)
Definition df-scan.cc:3879
void df_analyze_problem(struct dataflow *, bitmap, int *, int)
Definition df-core.cc:1192
#define DF_LIVE_OUT(BB)
Definition df.h:631
void df_add_problem(const struct df_problem *)
Definition df-core.cc:415
bool df_epilogue_uses_p(unsigned int)
Definition df-scan.cc:3636
void df_simulate_initialize_forwards(basic_block, bitmap)
Definition df-problems.cc:4018
void df_print_bb_index(basic_block bb, FILE *file)
Definition df-problems.cc:83
void df_insn_delete(rtx_insn *)
Definition df-scan.cc:926
void df_refs_chain_dump(df_ref, bool, FILE *)
Definition df-core.cc:2387
bool df_regs_ever_live_p(unsigned int)
Definition df-scan.cc:3888
bool(* df_transfer_function)(int)
Definition df.h:224
#define df_lr
Definition df.h:943
struct df_link * df_chain_create(df_ref, df_ref)
Definition df-problems.cc:2360
void df_mark_solutions_dirty(void)
Definition df-core.cc:1603
void df_dump_region(FILE *)
Definition df-core.cc:2236
void df_simple_dataflow(enum df_flow_dir, df_init_function, df_confluence_function_0, df_confluence_function_n, df_transfer_function, bitmap, int *, int)
Definition df-core.cc:1536
df_ref_flags
Definition df.h:80
@ DF_REF_REG_MARKER
Definition df.h:153
@ DF_REF_MW_HARDREG
Definition df.h:146
@ DF_REF_CONDITIONAL
Definition df.h:83
@ DF_REF_MAY_CLOBBER
Definition df.h:114
@ DF_REF_CALL_STACK_USAGE
Definition df.h:150
@ DF_HARD_REG_LIVE
Definition df.h:97
@ DF_REF_ZERO_EXTRACT
Definition df.h:136
@ DF_REF_STRICT_LOW_PART
Definition df.h:139
@ DF_REF_PARTIAL
Definition df.h:102
@ DF_REF_SUBREG
Definition df.h:142
@ DF_REF_MUST_CLOBBER
Definition df.h:125
@ DF_REF_READ_WRITE
Definition df.h:107
@ DF_REF_AT_TOP
Definition df.h:89
@ DF_REF_PRE_POST_MODIFY
Definition df.h:156
@ DF_REF_SIGN_EXTRACT
Definition df.h:133
@ DF_REF_IN_NOTE
Definition df.h:93
void(* df_confluence_function_0)(basic_block)
Definition df.h:216
df_ref df_get_artificial_defs(unsigned int bb_index)
Definition df.h:1203
void df_analyze_loop(class loop *)
Definition df-core.cc:1466
void df_dump_start(FILE *)
Definition df-core.cc:2261
#define DF_REF_NEXT_LOC(REF)
Definition df.h:682
bool df_reg_defined(rtx_insn *, rtx)
Definition df-core.cc:2033
void(* df_remove_problem_function)(void)
Definition df.h:235
void df_insn_debug(rtx_insn *, bool, FILE *)
Definition df-core.cc:2460
void df_hard_reg_init(void)
Definition df-scan.cc:3816
void(* df_local_compute_function)(bitmap)
Definition df.h:207
void df_set_regs_ever_live(unsigned int, bool)
Definition df-scan.cc:3897
void df_word_lr_simulate_artificial_refs_at_end(basic_block, bitmap)
void(* df_free_bb_function)(basic_block, void *)
Definition df.h:204
#define DF_LR_OUT(BB)
Definition df.h:640
int * df_get_postorder(enum df_flow_dir)
Definition df-core.cc:1511
df_ref df_single_def(const df_insn_info *info)
Definition df.h:1221
void df_bb_replace(int, basic_block)
Definition df-core.cc:1790
void df_live_set_all_dirty(void)
Definition df-problems.cc:1854
void df_dump_bottom(basic_block, FILE *)
Definition df-core.cc:2325
void df_scan_verify(void)
Definition df-scan.cc:4198
bool(* df_confluence_function_n)(edge)
Definition df.h:220
void df_uses_create(rtx *, rtx_insn *, int)
Definition df-scan.cc:596
void df_insn_rescan_all(void)
Definition df-scan.cc:1157
void(* df_verify_solution_start)(void)
Definition df.h:247
df_flow_dir
Definition df.h:64
@ DF_FORWARD
Definition df.h:66
@ DF_NONE
Definition df.h:65
@ DF_BACKWARD
Definition df.h:67
void(* df_dump_bb_problem_function)(basic_block, FILE *)
Definition df.h:241
void df_simulate_initialize_backwards(basic_block, bitmap)
Definition df-problems.cc:3950
bool can_move_insns_across(rtx_insn *, rtx_insn *, rtx_insn *, rtx_insn *, basic_block, regset, regset, rtx_insn **)
Definition df-problems.cc:4153
void df_live_verify_transfer_functions(void)
Definition df-problems.cc:1867
rtx df_find_single_def_src(rtx)
Definition df-core.cc:2075
void df_remove_problem(struct dataflow *)
Definition df-core.cc:583
int df_clear_flags(int)
Definition df-core.cc:476
void df_simulate_find_noclobber_defs(rtx_insn *, bitmap)
Definition df-problems.cc:3875
void df_ref_debug(df_ref, FILE *)
Definition df-core.cc:2497
void df_grow_insn_info(void)
Definition df-scan.cc:538
void df_get_exit_block_use_set(bitmap)
Definition df-scan.cc:3645
void df_maybe_reorganize_use_refs(enum df_ref_order)
Definition df-scan.cc:1662
df_chain_flags
Definition df.h:448
@ DF_DU_CHAIN
Definition df.h:450
@ DF_UD_CHAIN
Definition df.h:451
bool df_word_lr_simulate_defs(rtx_insn *, bitmap)
Definition df-problems.cc:3160
void df_lr_verify_transfer_functions(void)
Definition df-problems.cc:1326
#define df_md
Definition df.h:949
void df_md_simulate_one_insn(basic_block, rtx_insn *, bitmap)
Definition df-problems.cc:4530
void debug_df_reg(rtx)
Definition df-core.cc:2533
void(* df_reset_function)(bitmap)
Definition df.h:200
class df_lr_bb_info * df_lr_get_bb_info(unsigned int index)
Definition df.h:1123
void df_mir_add_problem(void)
Definition df-problems.cc:2305
void df_compute_regs_ever_live(bool)
Definition df-scan.cc:3912
void df_chain_unlink(df_ref)
Definition df-problems.cc:2400
df_ref df_find_use(rtx_insn *, rtx)
Definition df-core.cc:2043
df_scan_flags
Definition df.h:455
@ DF_SCAN_EMPTY_ENTRY_EXIT
Definition df.h:457
void df_worklist_dataflow(struct dataflow *, bitmap, int *, int)
Definition df-core.cc:1123
#define DF_INSN_INFO_USES(II)
Definition df.h:753
void debug_df_chain(struct df_link *)
Definition df-core.cc:2568
void df_simulate_one_insn_backwards(basic_block, rtx_insn *, bitmap)
Definition df-problems.cc:3968
void(* df_finalizer_function)(bitmap)
Definition df.h:227
void debug_df_regno(unsigned int)
Definition df-core.cc:2540
void simulate_backwards_to_point(basic_block, regset, rtx)
Definition df-problems.cc:4119
void df_note_add_problem(void)
Definition df-problems.cc:3820
bitmap df_get_live_out(basic_block bb)
Definition df.h:1173
void df_verify(void)
Definition df-core.cc:1860
void df_update_entry_exit_and_calls(void)
Definition df-scan.cc:3838
void df_word_lr_simulate_artificial_refs_at_top(basic_block, bitmap)
void df_live_add_problem(void)
Definition df-problems.cc:1841
struct df_scan_bb_info * df_scan_get_bb_info(unsigned int index)
Definition df.h:1105
void df_dump_insn_bottom(const rtx_insn *, FILE *)
Definition df-core.cc:2369
bool df_hard_reg_used_p(unsigned int)
Definition df-scan.cc:3865
#define df_live
Definition df.h:945
class df_live_bb_info * df_live_get_bb_info(unsigned int index)
Definition df.h:1141
class df_mir_bb_info * df_mir_get_bb_info(unsigned int index)
Definition df.h:1159
void df_compact_blocks(void)
Definition df-core.cc:1688
static class insn_def * defs
Definition genattrtab.cc:212
poly_int< N, C > r
Definition poly-int.h:774
bitmap regset
Definition regset.h:38
Definition basic-block.h:117
const struct df_problem * problem
Definition df.h:294
bool solutions_dirty
Definition df.h:329
bool optional_p
Definition df.h:334
unsigned int block_info_size
Definition df.h:299
unsigned int local_flags
Definition df.h:318
bool computed
Definition df.h:324
bitmap out_of_date_transfer_functions
Definition df.h:309
object_allocator< df_link > * block_pool
Definition df.h:302
void * problem_data
Definition df.h:315
void * block_info
Definition df.h:298
struct df_base_ref base
Definition df.h:395
basic_block bb
Definition df.h:399
unsigned int ref_order
Definition df.h:387
struct df_link * chain
Definition df.h:372
unsigned int regno
Definition df.h:369
struct df_insn_info * insn_info
Definition df.h:376
enum df_ref_class cl
Definition df.h:364
union df_ref_d * prev_reg
Definition df.h:381
rtx reg
Definition df.h:370
union df_ref_d * next_reg
Definition df.h:380
enum df_ref_type type
Definition df.h:366
int flags
Definition df.h:368
union df_ref_d * next_loc
Definition df.h:371
int id
Definition df.h:384
struct df_mw_hardreg * mw_hardregs
Definition df.h:431
df_ref eq_uses
Definition df.h:430
int luid
Definition df.h:435
rtx_insn * insn
Definition df.h:426
df_ref uses
Definition df.h:428
df_ref defs
Definition df.h:427
struct df_link * next
Definition df.h:443
df_ref ref
Definition df.h:442
df_mw_hardreg * next
Definition df.h:344
enum df_ref_type type
Definition df.h:348
rtx mw_reg
Definition df.h:345
unsigned int start_regno
Definition df.h:351
unsigned int mw_order
Definition df.h:353
unsigned int end_regno
Definition df.h:352
int flags
Definition df.h:350
unsigned int block_info_elt_size
Definition df.h:280
df_dataflow_function dataflow_fun
Definition df.h:265
df_finalizer_function finalize_fun
Definition df.h:269
df_remove_problem_function remove_problem_fun
Definition df.h:271
enum df_problem_id id
Definition df.h:258
df_dump_bb_problem_function dump_top_fun
Definition df.h:273
df_dump_insn_problem_function dump_insn_top_fun
Definition df.h:275
df_verify_solution_start verify_start_fun
Definition df.h:277
df_confluence_function_0 con_fun_0
Definition df.h:266
const struct df_problem * dependent_problem
Definition df.h:279
df_verify_solution_end verify_end_fun
Definition df.h:278
df_local_compute_function local_compute_fun
Definition df.h:263
df_init_function init_fun
Definition df.h:264
df_confluence_function_n con_fun_n
Definition df.h:267
df_free_function free_fun
Definition df.h:270
df_dump_insn_problem_function dump_insn_bottom_fun
Definition df.h:276
timevar_id_t tv_id
Definition df.h:283
bool free_blocks_on_set_blocks
Definition df.h:287
df_free_bb_function free_bb_fun
Definition df.h:262
df_dump_bb_problem_function dump_bottom_fun
Definition df.h:274
df_dump_problem_function dump_start_fun
Definition df.h:272
enum df_flow_dir dir
Definition df.h:259
df_reset_function reset_fun
Definition df.h:261
df_alloc_function alloc_fun
Definition df.h:260
df_transfer_function trans_fun
Definition df.h:268
enum df_ref_order ref_order
Definition df.h:508
unsigned int refs_size
Definition df.h:497
unsigned int table_size
Definition df.h:505
unsigned int * begin
Definition df.h:495
df_ref * refs
Definition df.h:494
unsigned int * count
Definition df.h:496
unsigned int total_size
Definition df.h:506
df_ref reg_chain
Definition df.h:516
unsigned int n_refs
Definition df.h:518
struct df_base_ref base
Definition df.h:405
rtx * loc
Definition df.h:410
df_ref artificial_defs
Definition df.h:821
df_ref artificial_uses
Definition df.h:827
friend bool unionfind_union(web_entry_base *first, web_entry_base *second)
Definition web.cc:67
void set_pred(web_entry_base *p)
Definition df.h:1248
web_entry_base * pred()
Definition df.h:1247
web_entry_base * unionfind_root()
Definition web.cc:47
web_entry_base * pred_pvt
Definition df.h:1243
#define NULL
Definition system.h:50
#define bool
Definition system.h:886
#define gcc_checking_assert(EXPR)
Definition system.h:821
timevar_id_t
Definition timevar.h:67
struct df_artificial_ref artificial_ref
Definition df.h:418
struct df_base_ref base
Definition df.h:416
struct df_regular_ref regular_ref
Definition df.h:417