[LLVMdev] setAlreadyVectorized does not delete obsolete metadata?

Robison, Arch arch.robison at intel.com
Wed Aug 13 15:00:49 PDT 2014


Filed as Bugzilla 20655, with a .ll source file and instructions for reproducing it.

- Arch

-----Original Message-----
From: Renato Golin [mailto:renato.golin at linaro.org] 
Sent: Wednesday, August 13, 2014 3:31 PM
To: Robison, Arch
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] setAlreadyVectorized does not delete obsolete metadata?

On 13 August 2014 21:16, Robison, Arch <arch.robison at intel.com> wrote:
> !6 and !9 are in the list for loopID !8 and they specify conflicting widths.  Is this a bug, or is there a deliberate convention that if there are multiple llvm.loop.vectorize.width annotations, only the last one counts?

It's a bug.

The vectorizer reads the metadata and writes it back with width = 1 to stop it from being vectorized again (also avoids wasting time if it wasn't worth it then), but it should not have two of the same and especially not two *different* values. It could be a simple bug in the writing back of the data, and should be simple to fix. Or it could be that the loop was fused from two other loops with different metadata, or inlining of code, etc, making it a bit more challenging.

Creating a bug with the appropriate sources and ways to reproduce it is the best course of action.

Thanks!
-renato




More information about the llvm-dev mailing list