mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
Document change. Describe the pass and some papers that inspired the design of the pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166386 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5a418ba5f5
commit
f01cad69c1
@ -7,10 +7,14 @@
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This is a simple loop vectorizer. We currently only support single block
|
||||
// loops. We have a very simple and restrictive legality check: we need to read
|
||||
// and write from disjoint memory locations. We still don't have a cost model.
|
||||
// We do support integer reductions.
|
||||
// This is the LLVM loop vectorizer. This pass modifies 'vectorizable' loops
|
||||
// and generates target-independent LLVM-IR. Legalization of the IR is done
|
||||
// in the codegen. However, the vectorizes uses (will use) the codegen
|
||||
// interfaces to generate IR that is likely to result in an optimal binary.
|
||||
//
|
||||
// The loop vectorizer combines consecutive loop iteration into a single
|
||||
// 'wide' iteration. After this transformation the index is incremented
|
||||
// by the SIMD vector width, and not by one.
|
||||
//
|
||||
// This pass has three parts:
|
||||
// 1. The main loop pass that drives the different parts.
|
||||
@ -18,6 +22,16 @@
|
||||
// of the vectorization.
|
||||
// 3. SingleBlockLoopVectorizer - A helper class that performs the actual
|
||||
// widening of instructions.
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The reduction-variable vectorization is based on the paper:
|
||||
// D. Nuzman and R. Henderson. Multi-platform Auto-vectorization.
|
||||
//
|
||||
// Variable uniformity checks are inspired by:
|
||||
// Karrenberg, R. and Hack, S. Whole Function Vectorization.
|
||||
//
|
||||
// Other ideas/concepts are from:
|
||||
// A. Zaks and D. Nuzman. Autovectorization in GCC—two years later.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
#define LV_NAME "loop-vectorize"
|
||||
|
Loading…
x
Reference in New Issue
Block a user