Contributors:
- Ira Rosen
- Devang Patel
- Dorit Naishlos
- Keith Besaw
Description
- 1- Cleanups and improvement of existing functionality
- 1.1 Incrementally preserve ssa form when vectorizing (Keith)
- - Description: define the virtual operands of newly
- generated vector statements so that the ssa form is preserved.
- 4.1 opens.
- - Description: maintain loop-closed form when doing
- loop-peeling in the vectorizer.
- - Description: handle known-misalignment case more
- efficiently; detect accesses with the same alignment.
- potential (for targets that don't support misalignment).
- - Description: allow vectorization in the presence of
- dependency if the dependence distance is safe.
- - Description: Make available generic parts of the dataref
- analysis to other passes.
- - Description: define the virtual operands of newly
- 2.1 Loop versioning for alignment (Keith)
- - Description: generate a vector version and a non-vector
- version of a loop with entry controlled by alignment tests
- compile time
- - Description: vectorize computations like 's+=a[i]' - Benefits: increase potential for vectorization - Parts of the compiler: tree-vectorizer.c, new tree-codes/optabs,
- target specific files (.md).
- - Description: Vectorize loops with conditional code. - Benefits: Increase potential for vectorization. - Parts of the compiler: tree-vectorizer.c, config/rs6000.c
- (other back ends may need some work to support this).
- - Description: generate a vector version and a non-vector
- 3.1 #pragma support to guide autovectorizer (Devang)
- - Description: Allow user to guide compiler when to vectorize
- and when not to vectorize particular loop using #pragma. Intel compiler provides similar functionality.
- when it can't prove there is no data dependency but user knows that.
- - Description: Allow user to guide compiler when to vectorize
- 3.2 Loop versioning to eliminate data dependence (Keith)
- - Description: generate a vector version and a
- non-vector version of a loop with entry controlled by data dependence tests.
- is unknown at compile time.
- - Description: Support misaligned stores using the
- tree-codes we agreed on last year.
- tree.def etc (new tree-codes), .md files.
- - Description: straight-line code vectorization. Focus on
- loops, to exploit intra-iteration parallelism.
- have now (so we're going to try two vectorization schemes which may affect compile time).
- - Description: vectorize certain forms of doubly-nested loops. - Benefit: vectorize when the parallelism is in the outer-loop
- and we can't (or don't want) to apply loop-interchange.
- - Description: generate a vector version and a
- 1.1 Incrementally preserve ssa form when vectorizing (Keith)