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