[LLVMdev] Vectorization metadata

Renato Golin rengolin at systemcall.org
Wed Apr 18 09:30:11 PDT 2012


Hal,

I'm opening a new discussion on vectorization metadata, since it has
little to do with fp-math. ;)

What kind of metadata would you annotate in the instructions? If I
remember from your talk, you're not doing any loop or whole-function
analysis, possibly leaving it for Polly to help you along the way.

I remember discussing it with Tobias that Polly could have three main steps:

1. Early analysis and annotation: a step that wouldn't modify code,
but extensively annotate (with metadata), so that itself, and other
passes like yours, could benefit from the polyhedral model.

2. Full polyhedral code modification: use the annotation of the
previous pass to extensively modify code. This is what Polly does
today, but the result of the analysis is not benefiting anyone except
for Polly.

This step can be fused with step 1 for performance reasons, but would
be good to be able to pass only the analysis part
 for the benefit of the annotation, without the heavy modifications.
This will be fundamental for independently testing  vectorization
passes that depend on Polly's metadata.

3. Code generation steps. As you said in your talk, and we discussed
in the fp-math thread, some code-generation steps could be aware of
the optimizations done via the metadata that was left in it.

That will require some guarantees on metadata semantics and
persistence that is not available today... Anyway, not sure any
metadata-hardening will be very well accepted... ;)

-- 
cheers,
--renato

http://systemcall.org/



More information about the llvm-dev mailing list