[LLVMdev] buildbot with -vectorize

Duncan Sands baldrick at free.fr
Thu Jun 28 06:22:41 PDT 2012


Hi Hal,

> FWIW, it looks like almost all (if not all) of the vectorize
> compile failures are due to other passes not handling pointer vectors
> appropriately.

unfortunately vectors of pointers were added without a systematic code audit to
ensure that all places handle such vectors correctly.  Probably one good thing
to do is to have llvm-stress produce such vectors, and feed the output into all
of the LLVM optimizers.

Ciao, Duncan.

  For example, lib/Analysis/ValueTracking.cpp contains
> this code:
>
> 427	    if (SrcTy->isPointerTy())
> 428	      SrcBitWidth = TD->getTypeSizeInBits(SrcTy);
> 429	    else
> 430	      SrcBitWidth = SrcTy->getScalarSizeInBits();
>
> and this does not work for pointer vectors. In this case, the solution
> (for the crash, which happens because getScalarSizeInBits returns 0 for
> pointer vectors) seems obvious, although fixing it to not crash and
> making sure it does the right thing are not equivalent.
>
> I can submit bug reports for these things, but I'd appreciate someone
> else helping with this. If you run with:
> -mllvm -unroll-allow-partial -mllvm -unroll-runtime -mllvm -vectorize
> -mllvm -bb-vectorize-req-chain-depth=4 (or 3 for real stress testing ;)
> ) you'll pick up a lot more of these kinds of things.
>
> If you run with -mllvm -bb-vectorize-no-gep -mllvm
> -bb-vectorize-no-pointers you'll find that most of this stuff goes away.
>
>   -Hal
>
>>
>> Tobi
>
>
>





More information about the llvm-dev mailing list