[polly][vectorizer] do not emit bitcast i32** to <1 x i32*>*

Tobias Grosser tobias at grosser.es
Mon Oct 7 08:10:13 PDT 2013


On 10/07/2013 04:27 PM, Sebastian Pop wrote:
> Hi,
>
> I would like to commit a patch from Zino solving several ICEs when compiling the
> nightly testsuite with polly's vector backend: -mllvm -polly-vectorizer=polly
> Tested on the nightly.
>
> The ICE looks like this:
> lib/IR/Instructions.cpp:2929: llvm::BitCastInst::BitCastInst(llvm::Value *, llvm::Type *, const llvm::Twine &, llvm::Instruction *): Assertion `castIsValid(getOpcode(), S, Ty) && "Illegal BitCast"' failed.
>
> The ICE appears very often during the compilation of the nightly testsuite (with CPU2000 and CPU2006):
> $ cat llvm-master-3706eda-clang-master-d815b3a-polly-master-b99acd7/runme.testsuite.2013_09_24_16_51_27.log | grep "Illegal BitCast" | wc -l
> 34
>
> The attached patch fixes all these ICEs.  Ok to commit?

Hi Sebastian,

thanks for the patches.

Here some comments:

1) Bitcast patch

The patch goes definitely in the right direction. However, it would be 
nice if you could besides modifying the existing test cases also provide 
a test cases that fail without these changes.

2) Remove -polly-cloog

By removing -polly-cloog you basically disable this test. As we should 
not use -polly-cloog in test/ScopInfo, disabling this test may make 
sense. However, then please remove the entire file.

3) Replace -polly-codegen with -polly-codegen-isl

LGTM.

Thanks,
Tobias



More information about the llvm-commits mailing list