anyone can help on this question please? thanks
> From: blue_3...@hotmail.com > To: gcc@gcc.gnu.org; maxim.kuvyr...@gmail.com > Subject: dep question in sched-deps.c > Date: Wed, 21 Mar 2012 01:17:07 +0000 > > > Hello, > > I am confused by following piece of code in sched-deps.c. My understanding is > the last_pending_memory_flush only holds jumps, calls and memory write. So I > think the two invocations of add_dependence should build true dependence, not > anti. > > > > for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1)) > { > if (! NON_FLUSH_JUMP_P (u)) > add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); <----------------------- > else if (deps_may_trap_p (x)) > { > if ((sched_deps_info->generate_spec_deps) > && sel_sched_p () && (spec_info->mask & BEGIN_CONTROL)) > { > ds_t ds = set_dep_weak (DEP_ANTI, BEGIN_CONTROL, > MAX_DEP_WEAK); > note_dep (XEXP (u, 0), ds); > } > else > add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); <--------------------------- > } > } > > > also, can you explain following comments in sched-deps.c. I don't quite > understand what is means and what NON_FLUSH_JUMP_KIND is for. > > /* In deps->last_pending_memory_flush marks JUMP_INSNs that weren't > added to the list because of flush_pending_lists, stands just > for itself and not for any other pending memory reads/writes. */ > > > > I also need more dicussion about DEPS_LIST and INSN_LIST. Maxim once kindly > explained to me, > "DEPS_LIST is a super-set of INSN_LIST. I kept INSN_LIST-style dependencies > to avoid overhead on targets that don't need additional features of > DEPS_LIST. Now that I look back at it, I should have removed INSN_LIST-style > dependencies; I still hope to find time and clean that up (remove support for > INSN_LIST-style dependencies).". But it is still over my head. my question is > what is INSN_list-style dependencies? what is the extra feature of DEPS_LIST > as a super-set of INSN_list? > > thanks