https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
Bug 77848 depends on bug 78411, which changed state.
Bug 78411 Summary: [7 Regression] FAIL: gcc.target/i386/pr45685.c
scan-assembler-times cmov 6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78411
What|Removed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #27 from Bill Schmidt ---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396 is open to track that
failure.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
Bill Schmidt changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #25 from Bill Schmidt ---
Author: wschmidt
Date: Thu Nov 17 14:22:17 2016
New Revision: 242550
URL: https://gcc.gnu.org/viewcvs?rev=242550&root=gcc&view=rev
Log:
[gcc]
2016-11-17 Bill Schmidt
Richard Biener
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #24 from Bill Schmidt ---
The above commit doesn't yet solve the problem, but enables more outer-loop
vectorization in preparation for the fix.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #23 from Bill Schmidt ---
Author: wschmidt
Date: Wed Nov 16 22:17:10 2016
New Revision: 242520
URL: https://gcc.gnu.org/viewcvs?rev=242520&root=gcc&view=rev
Log:
2016-11-16 Bill Schmidt
PR tree-optimization/77848
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #22 from Bill Schmidt ---
Proposed patch: https://gcc.gnu.org/ml/gcc-patches/2016-11/msg01541.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #21 from Bill Schmidt ---
Great, thanks. Just realized I need to add a test case yet -- should have this
on the list later today.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #20 from rguenther at suse dot de ---
On Tue, 15 Nov 2016, wschmidt at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
>
> --- Comment #19 from Bill Schmidt ---
> I have a patch that solves this problem
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #19 from Bill Schmidt ---
I have a patch that solves this problem by always versioning loops when
vectorization is enabled, and also sets up if-conversion for outer loops so
that outer-loop vectorization can succeed as before. Surpri
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #18 from Bill Schmidt ---
Oh, I see. Makes sense. I'll look into it soonish after handling a
high-priority interrupt that came in over the weekend...
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #17 from Richard Biener ---
Nono, you misunderstood -- I meant for the if-converter to produce
if (LOOP_VECTORIZED)
{
for (;;) // outer loop
for (;;)
// if-converted inner loop
}
else
{
for (;;) // outer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #16 from Bill Schmidt ---
Created attachment 39975
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39975&action=edit
WIP patch for outer-loop vectorization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #15 from Bill Schmidt ---
(In reply to rguent...@suse.de from comment #14)
> On November 5, 2016 4:31:54 PM GMT+01:00, "wschmidt at gcc dot gnu.org"
> wrote:
>
> >Notable degradations:
> > 403.gcc: -1.8%
> >
> >Other result
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #14 from rguenther at suse dot de ---
On November 5, 2016 4:31:54 PM GMT+01:00, "wschmidt at gcc dot gnu.org"
wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
>
>--- Comment #13 from Bill Schmidt ---
>SPEC cpu2006 on power
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #13 from Bill Schmidt ---
SPEC cpu2006 on powerpc64le-unknown-linux-gnu with the simple patch:
Geomean, integer: +0.2%
Geomean, float:+0.5%
Geomean, overall: +0.4%
Notable improvements:
454.calculix:+3.7%
453.povray:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #12 from Bill Schmidt ---
So I'll now test
Index: gcc/tree-if-conv.c
===
--- gcc/tree-if-conv.c (revision 241802)
+++ gcc/tree-if-conv.c (working copy)
@@ -2767,7 +276
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #11 from Bill Schmidt ---
(In reply to rguent...@suse.de from comment #10)
> On Fri, 4 Nov 2016, wschmidt at gcc dot gnu.org wrote:
>
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
> >
> > --- Comment #8 from Bill Schmidt -
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #10 from rguenther at suse dot de ---
On Fri, 4 Nov 2016, wschmidt at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
>
> --- Comment #8 from Bill Schmidt ---
> FYI, the patch I am testing is:
>
> Index
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #9 from rguenther at suse dot de ---
On Fri, 4 Nov 2016, wschmidt at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
>
> --- Comment #7 from Bill Schmidt ---
> OK, I will try to get some machine time to
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #8 from Bill Schmidt ---
FYI, the patch I am testing is:
Index: gcc/tree-if-conv.c
===
--- gcc/tree-if-conv.c (revision 241802)
+++ gcc/tree-if-conv.c (working copy)
@
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #7 from Bill Schmidt ---
OK, I will try to get some machine time to do performance testing of the
existing patch as soon as possible.
Here is the list of failures:
> FAIL: gcc.dg/vect/bb-slp-cond-1.c -flto -ffat-lto-objects
> scan
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #6 from Richard Biener ---
Note that bb-slp-cond-1.c is a particulaly bad example as it shows a defect in
the loop vectorizing data dependence analysis.
But yes, BB vectorization also benefits from if-conversion (but not only in
loop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #5 from Bill Schmidt ---
I suppose that's not sensible as stated, as the SLP vectorizer doesn't really
think in terms of loops.
But this is an existing problem independent of whether we force loop-versioning
on in all cases. Right n
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #4 from Bill Schmidt ---
Ah, never mind, I see what's happening.
The order of events is
* if-conversion
* loop vectorization
* DCE
* cunroll
* slp vectorization
If we force versioning on with if-conversion, then the loop vector
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #3 from Bill Schmidt ---
Just got back to looking at this. I've implemented this suggestion and it
seems to work well for the most part; it solves the poor code generation we
were seeing on this test case, and most of the test suite
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
--- Comment #2 from Bill Schmidt ---
Thanks, Richard! I appreciate the analysis, as I wasn't really sure what the
proper fix should be here.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77848
Bill Schmidt changed:
What|Removed |Added
CC||dje at gcc dot gnu.org,
29 matches
Mail list logo