[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