public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* dep question in sched-deps.c
@ 2012-03-21  1:17 p z
  2012-03-22  5:45 ` p z
  0 siblings, 1 reply; 2+ messages in thread
From: p z @ 2012-03-21  1:17 UTC (permalink / raw)
  To: gcc gcc, maxim.kuvyrkov


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 		 	   		  

^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: dep question in sched-deps.c
  2012-03-21  1:17 dep question in sched-deps.c p z
@ 2012-03-22  5:45 ` p z
  0 siblings, 0 replies; 2+ messages in thread
From: p z @ 2012-03-22  5:45 UTC (permalink / raw)
  To: gcc gcc, maxim.kuvyrkov


anyone can help on this question please? thanks


> From: blue_3too@hotmail.com
> To: gcc@gcc.gnu.org; maxim.kuvyrkov@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  		 	   		  

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-03-22  5:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-21  1:17 dep question in sched-deps.c p z
2012-03-22  5:45 ` p z

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).