This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix PR middle-end/57393


Ping.


On Mon, Sep 16, 2013 at 4:42 PM, Easwaran Raman <eraman@google.com> wrote:
> There are two separate root causes for the problem reported in PR
> 57393. This patch attempts to fix both.
>
> First is due to newly created stmts that have the default UID of 0
> which are compared with statements with valid UIDs leading to broken
> dependences. As discussed in an earlier thread, I check the UIDs
> before using them and ensure stmts have a valid UID. In the worst
> case, this reassigns UIDs for the entire BB containing the stmts in
> question.
>
> The second is due to debug stmts being out of sync with the IR after
> reassociation. I think the right fix is to create debug temps before
> actual reassociation to decouple them from the SSA variables involved
> in reassociation.
>
> This bootstraps in x86_64 and I am running the tests. Ok for trunk?
>
> Thanks,
> Easwaran
>
> 2013-09-16  Easwaran Raman  <eraman@google.com>
>
>         PR middle-end/57393
>         * tree-ssa-reassoc.c (get_stmt_uid_with_default): Remove.
>         (build_and_add_sum): Do not set UID of newly created statements.
>         (ensure_valid_uid): New function,
>         (find_insert_point): called here before UIDs are compared.
>         (insert_stmt_after): Do not reset debug statements.
>         (regenerate_debug_stmts): New function,
>         (reassociate_bb): use here.
>
> testsuite/ChangeLog:
> 2013-09-16  Easwaran Raman  <eraman@google.com>
>
>         PR middle-end/57393
>         * gcc.dg/tree-ssa/reassoc-32.c: New testcase.
>         * gcc.dg/tree-ssa/reassoc-33.c: New testcase.
>         * gcc.dg/tree-ssa/reassoc-34.c: New testcase.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]