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: [PATCH] combine: More distribute_notes trouble (PR69737)


On Thu, Feb 11, 2016 at 9:04 AM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> PR64682 is a problem in distribute_notes, where it has trouble putting
> a REG_DEAD note for a reg that is set twice in the right spot.  My fix
> for that did the wrong thing for PR69567.  And then my attempted fix
> for that one made PR64682 fail again.
>
> Instead, let's just lose the note in such complicated cases, like we
> already do in certain similar cases.
>
> Tested on powerpc64-linux and x86_64-linux.  Also built Linux kernels
> for some 30 supported targets; no difference in generated code was
> observed.
>
> Committing to trunk.
>
> HJ, I tested this on GCC 5 for x86_64-linux, the failure is gone;
> could you test it on your setup before I apply it there though?
>
>
> Segher
>
>
> 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
>
>         PR rtl-optimization/64682
>         PR rtl-optimization/69567
>         PR rtl-optimization/69737
>         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
>         in I2 as well, just lose it.
>
>

Yes, it fixed the regressions on ia32 and x96-64:

New passes:
FAIL: gcc.c-torture/execute/pr64682.c   -O2  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O2  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O2 -flto
-fno-use-linker-plugin -flto-partition=none  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O2 -flto
-fno-use-linker-plugin -flto-partition=none  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer
-funroll-loops  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -fomit-frame-pointer
-funroll-loops  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/pr64682.c   -O3 -g  execution test

Thanks.


-- 
H.J.


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