#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "toplev.h"#include "rtl.h"#include "tm_p.h"#include "hard-reg-set.h"#include "regs.h"#include "function.h"#include "flags.h"#include "insn-config.h"#include "insn-attr.h"#include "except.h"#include "recog.h"#include "sched-int.h"#include "params.h"#include "cselib.h"#include "df.h"

Go to the source code of this file.
Definition at line 55 of file sched-deps.c.
Definition at line 512 of file sched-deps.c.
References alloc_DEPS_LIST(), alloc_INSN_LIST(), anti_dependency_cache, bitmap_set_bit(), current_sched_info, DEP_ANTI, DEP_OUTPUT, DEP_TRUE, DO_SPECULATION, sched_info::flags, gcc_assert, INSN_LUID, INSN_P, LOG_LINKS, NULL, output_dependency_cache, PUT_REG_NOTE_KIND, REG_DEP_ANTI, REG_DEP_OUTPUT, spec_dependency_cache, SPECULATIVE, true_dependency_cache, and USE_DEPS_LIST.
Referenced by add_back_forw_dep(), and add_or_update_back_dep_1().
Definition at line 2026 of file sched-deps.c.
References add_back_dep(), adjust_back_add_forw_dep(), and LOG_LINKS.
Definition at line 1976 of file sched-deps.c.
References abort, alloc_INSN_LIST(), conditions_mutex_p(), DEP_ANTI, DEP_OUTPUT, DEP_TRUE, ds, gcc_unreachable, GET_CODE, get_condition(), INSN_LUID, INSN_P, LOG_LINKS, maybe_add_or_update_back_dep_1(), modified_in_p(), next, next_nonnote_insn(), NULL, PUT_REG_NOTE_KIND, REG_DEP_ANTI, REG_DEP_OUTPUT, REG_NOTE_KIND, RESET_BIT, SCHED_GROUP_P, SET_BIT, TEST_BIT, and XEXP.
Definition at line 570 of file sched-deps.c.
References add_dependence(), sched_insns_conditions_mutex_p(), and XEXP.
| static void add_dependence_list_and_free | ( | rtx | insn, | |
| rtx * | listp, | |||
| int | uncond, | |||
| enum reg_note | dep_type | |||
| ) | [static] |
Definition at line 582 of file sched-deps.c.
References add_dependence(), free_INSN_LIST_node(), next, NULL, sched_insns_conditions_mutex_p(), and XEXP.
Definition at line 1632 of file sched-deps.c.
References alloc_DEPS_LIST(), alloc_INSN_LIST(), bitmap_bit_p(), bitmap_set_bit(), current_sched_info, DEP_STATUS, find_insn_list(), sched_info::flags, gcc_assert, INSN_DELETED_P, INSN_DEP_COUNT, INSN_DEPEND, INSN_LUID, INSN_P, PUT_REG_NOTE_KIND, REG_NOTE_KIND, true_dependency_cache, USE_DEPS_LIST, and XEXP.
Referenced by add_deps_for_risky_insns(), adjust_back_add_forw_dep(), build_intra_loop_deps(), and compute_forward_dependences().
| static void add_insn_mem_dependence | ( | struct deps * | deps, | |
| rtx * | insn_list, | |||
| rtx * | mem_list, | |||
| rtx | insn, | |||
| rtx | mem | |||
| ) | [static] |
Definition at line 673 of file sched-deps.c.
References alloc_EXPR_LIST(), alloc_INSN_LIST(), canon_rtx(), cselib_subst_to_values(), current_sched_info, deps::pending_lists_length, shallow_copy_rtx, sched_info::use_cselib, and XEXP.
| enum DEPS_ADJUST_RESULT add_or_update_back_dep | ( | rtx | insn, | |
| rtx | elem, | |||
| enum reg_note | dep_type, | |||
| ds_t | ds | |||
| ) |
Definition at line 1996 of file sched-deps.c.
References add_or_update_back_dep_1().
Referenced by add_deps_for_risky_insns().
| static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 | ( | rtx | insn, | |
| rtx | elem, | |||
| enum reg_note | dep_type, | |||
| ds_t ds | ATTRIBUTE_UNUSED, | |||
| rtx mem1 | ATTRIBUTE_UNUSED, | |||
| rtx mem2 | ATTRIBUTE_UNUSED, | |||
| rtx **changed_linkpp | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 267 of file sched-deps.c.
References add_back_dep(), anti_dependency_cache, BEGIN_DATA, bitmap_bit_p(), bitmap_clear_bit(), bitmap_set_bit(), current_sched_info, DEP_ANTI, DEP_CHANGED, DEP_CREATED, DEP_OUTPUT, DEP_PRESENT, DEP_STATUS, DEP_TRUE, DEP_TYPES, DO_SPECULATION, ds, ds_merge(), estimate_dep_weak(), sched_info::flags, gcc_assert, gcc_unreachable, INSN_LUID, INSN_P, LOG_LINKS, NULL, output_dependency_cache, PUT_REG_NOTE_KIND, REG_DEP_ANTI, REG_DEP_OUTPUT, REG_NOTE_KIND, set_dep_weak(), spec_dependency_cache, SPECULATIVE, true_dependency_cache, USE_DEPS_LIST, and XEXP.
| static enum DEPS_ADJUST_RESULT add_or_update_back_dep_1 | ( | rtx | , | |
| rtx | , | |||
| enum | reg_note, | |||
| ds_t | , | |||
| rtx | , | |||
| rtx | , | |||
| rtx ** | ||||
| ) | [static] |
Referenced by add_or_update_back_dep(), add_or_update_back_forw_dep(), and maybe_add_or_update_back_dep_1().
Definition at line 2004 of file sched-deps.c.
References add_or_update_back_dep_1(), adjust_back_add_forw_dep(), delete_forw_dep(), DEP_CHANGED, DEP_CREATED, and LOG_LINKS.
Referenced by add_deps_for_risky_insns().
Definition at line 1885 of file sched-deps.c.
References bitmap_clear_bit(), current_sched_info, DEP_STATUS, DO_SPECULATION, sched_info::flags, gcc_assert, HAS_INTERNAL_DEP, INSN_LUID, spec_dependency_cache, SPECULATIVE, true_dependency_cache, and XEXP.
Referenced by adjust_back_add_forw_dep(), and compute_forward_dependences().
Definition at line 1915 of file sched-deps.c.
References add_forw_dep(), adjust_add_sorted_back_dep(), current_sched_info, DO_SPECULATION, sched_info::flags, gcc_assert, LOG_LINKS, and XEXP.
Referenced by add_back_forw_dep(), and add_or_update_back_forw_dep().
Definition at line 1674 of file sched-deps.c.
References add_forw_dep(), add_forward_dependence(), adjust_add_sorted_back_dep(), current_sched_info, DO_SPECULATION, sched_info::flags, group_leader(), insn, INSN_P, LOG_LINKS, next, NEXT_INSN, REG_NOTE_KIND, and XEXP.
Definition at line 191 of file sched-deps.c.
References COMPARISON_P, GET_CODE, NULL, reversed_comparison_code(), and XEXP.
Definition at line 598 of file sched-deps.c.
References anti_dependency_cache, bitmap_clear(), current_sched_info, DO_SPECULATION, sched_info::flags, free_DEPS_LIST_list(), free_INSN_LIST_list(), INSN_LUID, LOG_LINKS, NULL, output_dependency_cache, spec_dependency_cache, true_dependency_cache, and USE_DEPS_LIST.
Definition at line 2034 of file sched-deps.c.
References anti_dependency_cache, bitmap_clear_bit(), current_sched_info, delete_forw_dep(), DO_SPECULATION, sched_info::flags, gcc_assert, INSN_LUID, LOG_LINKS, NULL, output_dependency_cache, remove_free_DEPS_LIST_elem(), spec_dependency_cache, and true_dependency_cache.
Definition at line 1930 of file sched-deps.c.
References bitmap_clear_bit(), current_sched_info, DO_SPECULATION, sched_info::flags, gcc_assert, INSN_DEP_COUNT, INSN_DEPEND, INSN_LUID, remove_free_DEPS_LIST_elem(), and true_dependency_cache.
Referenced by add_or_update_back_forw_dep(), and delete_back_forw_dep().
| static int deps_may_trap_p | ( | rtx | mem | ) | [static] |
Definition at line 124 of file sched-deps.c.
References addr(), FIRST_PSEUDO_REGISTER, get_reg_known_value(), REG_P, REGNO, rtx_addr_can_trap_p(), and XEXP.
Definition at line 2093 of file sched-deps.c.
References DEP_TYPES, ds, FIRST_SPEC_TYPE, gcc_assert, get_dep_weak(), LAST_SPEC_TYPE, MAX_DEP_WEAK, MIN_DEP_WEAK, set_dep_weak(), SPEC_TYPE_SHIFT, and SPECULATIVE.
Referenced by add_or_update_back_dep_1().
Definition at line 1946 of file sched-deps.c.
References MIN_DEP_WEAK, NO_DEP_WEAK, REG_P, REGNO, UNCERTAIN_DEP_WEAK, and XEXP.
Referenced by add_or_update_back_dep_1().
Definition at line 1787 of file sched-deps.c.
References anti_dependency_cache, bitmap_head, bitmap_initialize(), cache_size, current_sched_info, DO_SPECULATION, sched_info::flags, i, output_dependency_cache, spec_dependency_cache, true_dependency_cache, and XRESIZEVEC.
Referenced by init_dependency_caches().
Definition at line 1875 of file sched-deps.c.
References FREE_REG_SET, reg_pending_clobbers, reg_pending_sets, and reg_pending_uses.
Definition at line 630 of file sched-deps.c.
References add_dependence(), BLOCK_FOR_INSN, delete_all_dependences(), i, LOG_LINKS, prev_nonnote_insn(), REG_DEP_ANTI, REG_NOTE_KIND, SCHED_GROUP_P, sched_insns_conditions_mutex_p(), and XEXP.
| static void flush_pending_lists | ( | struct deps * | deps, | |
| rtx | insn, | |||
| int | for_read, | |||
| int | for_write | |||
| ) | [static] |
Definition at line 697 of file sched-deps.c.
References add_dependence_list_and_free(), alloc_INSN_LIST(), free_EXPR_LIST_list(), deps::last_pending_memory_flush, NULL_RTX, deps::pending_flush_length, deps::pending_lists_length, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, REG_DEP_ANTI, and REG_DEP_OUTPUT.
Definition at line 1825 of file sched-deps.c.
References anti_dependency_cache, bitmap_clear(), cache_size, current_sched_info, DO_SPECULATION, sched_info::flags, free(), i, NULL, output_dependency_cache, sbitmap_vector_free, spec_dependency_cache, and true_dependency_cache.
Definition at line 1734 of file sched-deps.c.
References CLEAR_REG_SET, EXECUTE_IF_SET_IN_REG_SET, free(), free_EXPR_LIST_list(), free_INSN_LIST_list(), i, if(), deps::last_pending_memory_flush, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, deps::reg_conditional_sets, deps::reg_last, and deps::reg_last_in_use.
Definition at line 2056 of file sched-deps.c.
References BE_IN_CONTROL, BE_IN_CONTROL_BITS_OFFSET, BE_IN_DATA, BE_IN_DATA_BITS_OFFSET, BEGIN_CONTROL, BEGIN_CONTROL_BITS_OFFSET, BEGIN_DATA, BEGIN_DATA_BITS_OFFSET, gcc_assert, gcc_unreachable, MAX_DEP_WEAK, and MIN_DEP_WEAK.
Referenced by ds_merge().
| void init_dependency_caches | ( | int | luid | ) |
Definition at line 1769 of file sched-deps.c.
References cache_size, extend_dependency_caches(), n_basic_blocks, sbitmap_vector_alloc(), and sbitmap_vector_zero().
Definition at line 1709 of file sched-deps.c.
References FIRST_PSEUDO_REGISTER, deps::in_post_call_group_p, INIT_REG_SET, deps::last_function_call, deps::last_pending_memory_flush, deps::libcall_block_tail_insn, max_reg, deps::max_reg, max_reg_num(), deps::pending_flush_length, deps::pending_lists_length, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, deps::reg_conditional_sets, deps::reg_last, deps::reg_last_in_use, reload_completed, deps::sched_before_next_call, xcalloc(), and XCNEWVEC.
Definition at line 1864 of file sched-deps.c.
References ALLOC_REG_SET, INITIALIZE_REG_SET, NOT_A_BARRIER, reg_obstack, reg_pending_barrier, reg_pending_clobbers, reg_pending_clobbers_head, reg_pending_sets, reg_pending_sets_head, reg_pending_uses, and reg_pending_uses_head.
| static enum DEPS_ADJUST_RESULT maybe_add_or_update_back_dep_1 | ( | rtx | insn, | |
| rtx | elem, | |||
| enum reg_note | dep_type, | |||
| ds_t | ds, | |||
| rtx | mem1, | |||
| rtx | mem2, | |||
| rtx ** | changed_linkpp | |||
| ) | [static] |
Definition at line 241 of file sched-deps.c.
References add_or_update_back_dep_1(), current_sched_info, DO_SPECULATION, sched_info::flags, gcc_assert, HAS_INTERNAL_DEP, and INSN_P.
Referenced by add_dependence(), and sched_analyze_2().
Definition at line 1461 of file sched-deps.c.
References abort, add_dependence_list_and_free(), alloc_EXPR_LIST(), alloc_INSN_LIST(), CALL_P, CANT_MOVE, CONST_OR_PURE_CALL_P, cselib_finish(), cselib_init(), cselib_process_insn(), current_sched_info, find_reg_note(), FIRST_PSEUDO_REGISTER, fixed_regs, flush_pending_lists(), frame_pointer_needed, FRAME_POINTER_REGNUM, free_INSN_LIST_list(), gcc_assert, gcc_unreachable, GEN_INT, GET_CODE, global_regs, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_CALL_PART_CLOBBERED, i, deps::in_post_call_group_p, insn, JUMP_P, LABEL_P, deps::last_function_call, deps::last_pending_memory_flush, deps::libcall_block_tail_insn, LOG_LINKS, MAX_PENDING_LIST_LENGTH, MOVE_BARRIER, NEXT_INSN, NONJUMP_INSN_P, NOTE_EH_HANDLER, NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_LINE_NUMBER, NOTE_P, NULL, NULL_RTX, PATTERN, deps::pending_flush_length, prev_nonnote_insn(), r0, REG, REG_DEP_ANTI, REG_EQUAL, REG_LIBCALL, REG_P, reg_pending_barrier, reg_pending_clobbers, reg_pending_sets, reg_pending_uses, reg_raw_mode, REG_RETVAL, REG_SAVE_NOTE, REG_SETJMP, regs_invalidated_by_call, reload_completed, sched_analyze_insn(), deps::sched_before_next_call, SET_DEST, SET_REGNO_REG_SET, SET_SRC, single_set, TEST_HARD_REG_BIT, sched_info::use_cselib, and XEXP.
Definition at line 795 of file sched-deps.c.
References add_dependence(), add_dependence_list(), add_insn_mem_dependence(), anti_dependence(), canon_rtx(), cselib_lookup(), cselib_subst_to_values(), current_sched_info, dest, df_read_modify_subreg_p(), FIRST_STACK_REG, flush_pending_lists(), gen_rtx_CLOBBER, GET_CODE, GET_MODE, i, deps::last_pending_memory_flush, LAST_STACK_REG, MAX_PENDING_LIST_LENGTH, MEM_P, mode, output_dependence(), deps::pending_lists_length, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, Pmode, REG_DEP_ANTI, REG_DEP_OUTPUT, REG_P, REGNO, sched_analyze_1(), sched_analyze_2(), sched_analyze_reg(), sched_insns_conditions_mutex_p(), SET, SET_SRC, shallow_copy_rtx, USE, sched_info::use_cselib, XEXP, XVECEXP, and XVECLEN.
Definition at line 928 of file sched-deps.c.
References add_dependence(), add_insn_mem_dependence(), ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_LENGTH, BEGIN_DATA, canon_rtx(), CANT_MOVE, CONST, cselib_lookup(), cselib_subst_to_values(), current_sched_info, DEP_TRUE, deps_may_trap_p(), DO_SPECULATION, FIRST_STACK_REG, sched_info::flags, flush_pending_lists(), GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, JUMP_P, deps::last_pending_memory_flush, LAST_STACK_REG, maybe_add_or_update_back_dep_1(), MEM, MEM_VOLATILE_P, mode, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, Pmode, prev_nonnote_insn(), read_dependence(), REG, REG_DEP_ANTI, reg_pending_barrier, REGNO, rtx_varies_p(), sched_analyze_1(), sched_analyze_2(), sched_analyze_reg(), SCHED_GROUP_P, sched_insns_conditions_mutex_p(), SET, shallow_copy_rtx, TRUE_BARRIER, true_dependence(), USE, sched_info::use_cselib, XEXP, XVECEXP, and XVECLEN.
Definition at line 1118 of file sched-deps.c.
References add_dependence(), add_dependence_list(), add_dependence_list_and_free(), alloc_INSN_LIST(), BARRIER_P, CALL_INSN_FUNCTION_USAGE, CALL_P, can_throw_internal(), CANT_MOVE, CLEAR_REG_SET, CLEAR_REGNO_REG_SET, sched_info::compute_jump_reg_dependencies, COND_EXEC_CODE, COND_EXEC_TEST, control_flow_insn_p(), current_sched_info, EXECUTE_IF_SET_IN_REG_SET, find_reg_note(), FIRST_PSEUDO_REGISTER, fixup_sched_groups(), flush_pending_lists(), GET_CODE, i, deps::in_post_call_group_p, INIT_REG_SET, IOR_REG_SET, JUMP_P, deps::last_function_call, deps::last_pending_memory_flush, deps::libcall_block_tail_insn, MAX_PENDING_LIST_LENGTH, deps::max_reg, MEM_VOLATILE_P, MINUS, MOVE_BARRIER, next, next_nonnote_insn(), NONJUMP_INSN_P, NOT_A_BARRIER, NULL, deps::pending_read_insns, deps::pending_read_mems, deps::pending_write_insns, deps::pending_write_mems, PLUS, deps::reg_conditional_sets, REG_DEP_ANTI, REG_DEP_OUTPUT, deps::reg_last, deps::reg_last_in_use, REG_P, reg_pending_barrier, reg_pending_clobbers, reg_pending_sets, reg_pending_uses, REG_SETJMP, REGNO, RTX_CODE, sched_analyze_1(), sched_analyze_2(), sched_get_condition(), SCHED_GROUP_P, sched_insns_conditions_mutex_p(), SET, SET_DEST, SET_REGNO_REG_SET, SET_SRC, deps::deps_reg::sets, single_set, STACK_POINTER_REGNUM, sub, SUBREG_REG, tmp, TRUE_BARRIER, unsigned, XEXP, XVECEXP, and XVECLEN.
| static void sched_analyze_reg | ( | struct deps * | deps, | |
| int | regno, | |||
| enum machine_mode | mode, | |||
| enum rtx_code | ref, | |||
| rtx | insn | |||
| ) | [static] |
Definition at line 723 of file sched-deps.c.
References add_dependence_list(), alloc_INSN_LIST(), FIRST_PSEUDO_REGISTER, gcc_assert, GET_CODE, get_reg_known_equiv_p(), get_reg_known_value(), hard_regno_nregs, i, deps::last_function_call, deps::max_reg, MEM_P, PATTERN, REG_DEP_ANTI, REG_N_CALLS_CROSSED, reg_pending_clobbers, reg_pending_sets, reg_pending_uses, reload_completed, sched_analyze_2(), deps::sched_before_next_call, SET, SET_REGNO_REG_SET, USE, and XEXP.
Referenced by sched_analyze_1(), and sched_analyze_2().
Definition at line 155 of file sched-deps.c.
References any_condjump_p(), cond, COND_EXEC_TEST, gen_rtx_fmt_ee(), GET_CODE, GET_MODE, onlyjump_p(), PATTERN, pc_rtx, pc_set(), reversed_comparison_code(), SET_SRC, src, UNKNOWN, and XEXP.
Definition at line 205 of file sched-deps.c.
References CALL_P, conditions_mutex_p(), modified_in_p(), and sched_get_condition().
Referenced by add_dependence_list(), add_dependence_list_and_free(), add_deps_for_risky_insns(), fixup_sched_groups(), sched_analyze_1(), sched_analyze_2(), and sched_analyze_insn().
Definition at line 2075 of file sched-deps.c.
References BE_IN_CONTROL, BE_IN_CONTROL_BITS_OFFSET, BE_IN_DATA, BE_IN_DATA_BITS_OFFSET, BEGIN_CONTROL, BEGIN_CONTROL_BITS_OFFSET, BEGIN_DATA, BEGIN_DATA_BITS_OFFSET, gcc_assert, gcc_unreachable, MAX_DEP_WEAK, and MIN_DEP_WEAK.
Referenced by add_deps_for_risky_insns(), add_or_update_back_dep_1(), and ds_merge().
bitmap_head* anti_dependency_cache [static] |
Definition at line 79 of file sched-deps.c.
int cache_size [static] |
Definition at line 81 of file sched-deps.c.
bitmap_head* output_dependency_cache [static] |
Definition at line 78 of file sched-deps.c.
enum reg_pending_barrier_mode reg_pending_barrier [static] |
Definition at line 62 of file sched-deps.c.
regset reg_pending_clobbers [static] |
Definition at line 49 of file sched-deps.c.
regset reg_pending_sets [static] |
Definition at line 48 of file sched-deps.c.
regset reg_pending_uses [static] |
Definition at line 50 of file sched-deps.c.
bitmap_head* spec_dependency_cache [static] |
Definition at line 80 of file sched-deps.c.
Referenced by add_back_dep(), add_or_update_back_dep_1(), adjust_add_sorted_back_dep(), delete_all_dependences(), delete_back_forw_dep(), extend_dependency_caches(), and free_dependency_caches().
bitmap_head* true_dependency_cache [static] |
Definition at line 77 of file sched-deps.c.
1.5.6