https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108463
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I've now tried: --- sched-deps.cc.jj7 2023-01-19 09:58:50.971227752 +0100 +++ sched-deps.cc 2023-01-26 20:58:30.036035079 +0100 @@ -2498,7 +2498,10 @@ sched_analyze_1 (class deps_desc *deps, pending_mem = deps->pending_read_mems; while (pending) { - if (anti_dependence (pending_mem->element (), t) +bool b = anti_dependence (pending_mem->element (), t); +if (sched_deps_info->use_cselib && !DEBUG_INSN_P (insn) && !DEBUG_INSN_P (pending->insn ())) +fprintf (stderr, "anti_dependence %d\n", b); + if (b && ! sched_insns_conditions_mutex_p (insn, pending->insn ())) note_mem_dep (t, pending_mem->element (), pending->insn (), DEP_ANTI); @@ -2511,7 +2514,10 @@ sched_analyze_1 (class deps_desc *deps, pending_mem = deps->pending_write_mems; while (pending) { - if (output_dependence (pending_mem->element (), t) +bool b = output_dependence (pending_mem->element (), t); +if (sched_deps_info->use_cselib && !DEBUG_INSN_P (insn) && !DEBUG_INSN_P (pending->insn ())) +fprintf (stderr, "output_dependence %d\n", b); + if (b && ! sched_insns_conditions_mutex_p (insn, pending->insn ())) note_mem_dep (t, pending_mem->element (), pending->insn (), @@ -2605,7 +2611,14 @@ sched_analyze_2 (class deps_desc *deps, case MEM: { - if (!DEBUG_INSN_P (insn)) + if (DEBUG_INSN_P (insn) && sched_deps_info->use_cselib) + { + machine_mode address_mode = get_address_mode (x); + + cselib_lookup_from_insn (XEXP (x, 0), address_mode, 1, + GET_MODE (x), insn); + } + else if (!DEBUG_INSN_P (insn)) { /* Reading memory. */ rtx_insn_list *u; @@ -2630,7 +2643,10 @@ sched_analyze_2 (class deps_desc *deps, pending_mem = deps->pending_read_mems; while (pending) { - if (read_dependence (pending_mem->element (), t) +bool b = read_dependence (pending_mem->element (), t); +if (sched_deps_info->use_cselib && !DEBUG_INSN_P (insn) && !DEBUG_INSN_P (pending->insn ())) +fprintf (stderr, "read_dependence %d\n", b); + if (b && ! sched_insns_conditions_mutex_p (insn, pending->insn ())) note_mem_dep (t, pending_mem->element (), @@ -2645,7 +2661,10 @@ sched_analyze_2 (class deps_desc *deps, pending_mem = deps->pending_write_mems; while (pending) { - if (true_dependence (pending_mem->element (), VOIDmode, t) +bool b = true_dependence (pending_mem->element (), VOIDmode, t); +if (sched_deps_info->use_cselib && !DEBUG_INSN_P (insn) && !DEBUG_INSN_P (pending->insn ())) +fprintf (stderr, "true_dependence %d\n", b); + if (b && ! sched_insns_conditions_mutex_p (insn, pending->insn ())) note_mem_dep (t, pending_mem->element (), @@ -3817,7 +3836,10 @@ sched_analyze (class deps_desc *deps, rt rtx_insn *insn; if (sched_deps_info->use_cselib) +{ cselib_init (CSELIB_RECORD_MEMORY); +fprintf (stderr, "cselib_init\n"); +} deps_start_bb (deps, head); and I see with it a few differences in the output (-g0 to -g): @@ -603,8 +603,8 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 -true_dependence 0 +true_dependence 1 +true_dependence 1 read_dependence 0 read_dependence 0 read_dependence 0 @@ -616,8 +616,8 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 -true_dependence 0 +true_dependence 1 +true_dependence 1 read_dependence 0 read_dependence 0 read_dependence 0 @@ -630,8 +630,8 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 -true_dependence 0 +true_dependence 1 +true_dependence 1 read_dependence 0 read_dependence 0 read_dependence 0 @@ -645,8 +645,8 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 -true_dependence 0 +true_dependence 1 +true_dependence 1 read_dependence 0 read_dependence 0 read_dependence 0 @@ -735,7 +735,7 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 +true_dependence 1 true_dependence 1 read_dependence 0 read_dependence 0 @@ -757,7 +757,7 @@ read_dependence 0 read_dependence 0 read_dependence 0 true_dependence 1 -true_dependence 0 +true_dependence 1 read_dependence 0 read_dependence 0 read_dependence 0 @@ -801,8 +801,8 @@ read_dependence 0 read_dependence 0 read_dependence 0 read_dependence 0 -true_dependence 0 -true_dependence 0 +true_dependence 1 +true_dependence 1 anti_dependence 1 anti_dependence 0 anti_dependence 1 So, apparently only differences (on this testcase) for true_dependence, will need to debug in detail what is different in those cases.