[llvm] r217144 - Enable noalias metadata by default and swap the order of the SLP and Loop vectorizers by default.

Hal Finkel hfinkel at anl.gov
Thu Sep 25 17:10:12 PDT 2014


Hi Yi,

This is almost likely a bug in BBVectorize. Can you please file a bug report.

Out of curiosity, are there still cases where -fslp-vectorize-aggressive provides additional speedup over -O3 (which should now include -fslp-vectorize)?

Thanks again,
Hal

----- Original Message -----
> From: "Yi Kong" <kongy.dev at gmail.com>
> To: "James Molloy" <james.molloy at arm.com>
> Cc: llvm-commits at cs.uiuc.edu
> Sent: Thursday, September 25, 2014 6:58:24 PM
> Subject: Re: [llvm] r217144 - Enable noalias metadata by default and swap the	order of the SLP and Loop vectorizers
> by default.
> 
> Hi James,
> 
> This patch is causing a bunch of failures in LNT test suite, when
> compiling with `-O3 -fslp-vectorize-aggressive`. Clang fails when
> trying to do the CSE after BBVectorize.
> 
> -Yi
> 
> New Failures - Compile Time
> MultiSource/Applications/ClamAV/clamscan
> MultiSource/Applications/JM/ldecod/ldecod
> MultiSource/Applications/JM/lencod/lencod
> MultiSource/Applications/oggenc/oggenc
> MultiSource/Benchmarks/7zip/7zip-benchmark
> MultiSource/Benchmarks/FreeBench/neural/neural
> MultiSource/Benchmarks/MallocBench/espresso/espresso
> MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame
> SingleSource/Benchmarks/CoyoteBench/lpbench
> 
> Error message:
> $ clang lpbench.c --target=aarch64-linux-gnu -O3
> -fslp-vectorize-aggressive
> Instruction does not dominate all uses!
>   %cmp.zero241 = icmp eq i64 %n.vec239, 0
>   br i1 %cmp.zero241, label %middle.block, label %vector.memcheck
> Instruction does not dominate all uses!
>   %n.vec239 = and i64 %0, -4
>   %37 = icmp eq i64 %index.next, %n.vec239
> Instruction does not dominate all uses!
>   %n.vec239 = and i64 %0, -4
>   %resume.val = phi i64 [ 0, %overflow.checked ], [ 0,
> %vector.memcheck ], [ %n.vec239, %vector.body ]
> Instruction does not dominate all uses!
>   %cmp.zero241 = icmp eq i64 %n.vec239, 0
>   br i1 %cmp.zero241, label %middle.block184, label
>   %vector.memcheck205
> Instruction does not dominate all uses!
>   %n.vec239 = and i64 %0, -4
>   %56 = icmp eq i64 %index.next211, %n.vec239
> Instruction does not dominate all uses!
>   %n.vec239 = and i64 %0, -4
>   %resume.val206 = phi i64 [ 0, %overflow.checked192 ], [ 0,
> %vector.memcheck205 ], [ %n.vec239, %vector.body183 ]
> fatal error: error in backend: Broken function found, compilation
> aborted!
> clang: error: clang frontend command failed with exit code 70 (use -v
> to see invocation)
> clang version 3.6.0 (trunk 217400)
> Target: aarch64--linux-gnu
> Thread model: posix
> clang: note: diagnostic msg: PLEASE submit a bug report to
> http://llvm.org/bugs/ and include the crash backtrace, preprocessed
> source, and associated run script.
> clang: note: diagnostic msg:
> ********************
> 
> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
> Preprocessed source(s) and associated run script(s) are located at:
> clang: note: diagnostic msg: /tmp/lpbench-8701bf.c
> clang: note: diagnostic msg: /tmp/lpbench-8701bf.sh
> clang: note: diagnostic msg:
> 
> ********************
> 
> On 4 September 2014 14:23, James Molloy <james.molloy at arm.com> wrote:
> > Author: jamesm
> > Date: Thu Sep  4 08:23:08 2014
> > New Revision: 217144
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=217144&view=rev
> > Log:
> > Enable noalias metadata by default and swap the order of the SLP
> > and Loop vectorizers by default.
> >
> > After some time maturing, hopefully the flags themselves will be
> > removed.
> >
> > Modified:
> >     llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
> >     llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
> >
> > Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
> > URL:
> > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=217144&r1=217143&r2=217144&view=diff
> > ==============================================================================
> > --- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
> > +++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Thu Sep  4
> > 08:23:08 2014
> > @@ -62,7 +62,7 @@ static cl::opt<bool> RunLoadCombine("com
> >
> >  static cl::opt<bool>
> >  RunSLPAfterLoopVectorization("run-slp-after-loop-vectorization",
> > -  cl::init(false), cl::Hidden,
> > +  cl::init(true), cl::Hidden,
> >    cl::desc("Run the SLP vectorizer (and BB vectorizer) after the
> >    Loop "
> >             "vectorizer instead of before"));
> >
> >
> > Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
> > URL:
> > http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=217144&r1=217143&r2=217144&view=diff
> > ==============================================================================
> > --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original)
> > +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Thu Sep  4
> > 08:23:08 2014
> > @@ -42,7 +42,7 @@
> >  using namespace llvm;
> >
> >  static cl::opt<bool>
> > -EnableNoAliasConversion("enable-noalias-to-md-conversion",
> > cl::init(false),
> > +EnableNoAliasConversion("enable-noalias-to-md-conversion",
> > cl::init(true),
> >    cl::Hidden,
> >    cl::desc("Convert noalias attributes to metadata during
> >    inlining."));
> >
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list