Hello,
>>> * ddg.c (add_intra_loop_mem_dep): New function.
>
> You could check first thing if (from->cuid == to->cuid), for code clarity.
Attached is the new version of the patch which addresses this.
The patch was re-tested as follows:
On ppc64-redhat-linux regtest as well as bootstrap
Hello,
> better do
> else if (!mem_read_insn_p (to->insn))
>
> + create_ddg_dep_no_link (g, from, to, ANTI_DEP, MEM_DEP, 0);
> + }
Done. Committed to -r175090.
Thanks,
Revital
Revital Eres wrote on 15/06/2011 11:45:15 AM:
> From: Revital Eres
> To: Ayal Zaks/Haifa/IBM@IBMIL
> Cc: gcc-patches@gcc.gnu.org, Patch Tracking
> Date: 15/06/2011 11:45 AM
> Subject: Re: [PATCH, SMS] Fix violation of memory dependence
>
> Hello,
>
> >>>
Hello,
>> You could check first thing if (from->cuid == to->cuid), for code clarity.
>
> I will address this point separately and commit the current version of
> the patch as is if that's OK.
Re-thinking about that, I'll prepare a new version of the patch which
addresses this and re-send it.
Sor
Hello,
> Yes, this is a straightforward fix to a wrong-code bug, as discussed
> offline. Other alternatives that might introduce less edges:
> o connect predecessors of u with v, and u with successors of v, when
> removing edge (u,v). Maybe there are other cases which rely on transitivity
> (?).
Revital Eres wrote on 13/06/2011 10:29:06 AM:
> From: Revital Eres
> To: Ayal Zaks/Haifa/IBM@IBMIL
> Cc: gcc-patches@gcc.gnu.org, Patch Tracking
> Date: 13/06/2011 10:29 AM
> Subject: [PATCH, SMS] Fix violation of memory dependence
>
> Hello,
>
> The attached patc
Hello,
The attached patch fixes violation of memory dependencies. The
problematic scenario happens when -fmodulo-sched-allow-regmoves flag
is set and certain anti-dep edges are not created.
For example, consider the following three instructions and the edges
between them. When -fmodulo-sched-all