1c34e5113SHal Finkel    //===-- Vectorize.cpp -----------------------------------------------------===//
2c34e5113SHal Finkel //
3c34e5113SHal Finkel //                     The LLVM Compiler Infrastructure
4c34e5113SHal Finkel //
5c34e5113SHal Finkel // This file is distributed under the University of Illinois Open Source
6c34e5113SHal Finkel // License. See LICENSE.TXT for details.
7c34e5113SHal Finkel //
8c34e5113SHal Finkel //===----------------------------------------------------------------------===//
9c34e5113SHal Finkel //
10c34e5113SHal Finkel // This file implements common infrastructure for libLLVMVectorizeOpts.a, which
11c34e5113SHal Finkel // implements several vectorization transformations over the LLVM intermediate
12c34e5113SHal Finkel // representation, including the C bindings for that library.
13c34e5113SHal Finkel //
14c34e5113SHal Finkel //===----------------------------------------------------------------------===//
15c34e5113SHal Finkel 
16ed0881b2SChandler Carruth #include "llvm/Transforms/Vectorize.h"
17c34e5113SHal Finkel #include "llvm-c/Initialization.h"
18ed0881b2SChandler Carruth #include "llvm-c/Transforms/Vectorize.h"
19c34e5113SHal Finkel #include "llvm/Analysis/Passes.h"
20c34e5113SHal Finkel #include "llvm/Analysis/Verifier.h"
21ed0881b2SChandler Carruth #include "llvm/InitializePasses.h"
22ed0881b2SChandler Carruth #include "llvm/PassManager.h"
23c34e5113SHal Finkel 
24c34e5113SHal Finkel using namespace llvm;
25c34e5113SHal Finkel 
26c34e5113SHal Finkel /// initializeVectorizationPasses - Initialize all passes linked into the
27c34e5113SHal Finkel /// Vectorization library.
28c34e5113SHal Finkel void llvm::initializeVectorization(PassRegistry &Registry) {
29c34e5113SHal Finkel   initializeBBVectorizePass(Registry);
306b94c2a0SNadav Rotem   initializeLoopVectorizePass(Registry);
31c34e5113SHal Finkel }
32c34e5113SHal Finkel 
33c34e5113SHal Finkel void LLVMInitializeVectorization(LLVMPassRegistryRef R) {
34c34e5113SHal Finkel   initializeVectorization(*unwrap(R));
35c34e5113SHal Finkel }
36c34e5113SHal Finkel 
37c34e5113SHal Finkel void LLVMAddBBVectorizePass(LLVMPassManagerRef PM) {
38c34e5113SHal Finkel   unwrap(PM)->add(createBBVectorizePass());
39c34e5113SHal Finkel }
40c34e5113SHal Finkel 
416b94c2a0SNadav Rotem void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) {
42*d0bb22bbSNadav Rotem   unwrap(PM)->add(createLoopVectorizePass());
436b94c2a0SNadav Rotem }
44