Vectorize.cpp revision 251662
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/Analysis/Verifier.h" 21#include "llvm/InitializePasses.h" 22#include "llvm/PassManager.h" 23 24using namespace llvm; 25 26/// initializeVectorizationPasses - Initialize all passes linked into the 27/// Vectorization library. 28void llvm::initializeVectorization(PassRegistry &Registry) { 29 initializeBBVectorizePass(Registry); 30 initializeLoopVectorizePass(Registry); 31 initializeSLPVectorizerPass(Registry); 32} 33 34void LLVMInitializeVectorization(LLVMPassRegistryRef R) { 35 initializeVectorization(*unwrap(R)); 36} 37 38void LLVMAddBBVectorizePass(LLVMPassManagerRef PM) { 39 unwrap(PM)->add(createBBVectorizePass()); 40} 41 42void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { 43 unwrap(PM)->add(createLoopVectorizePass()); 44} 45 46void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) { 47 unwrap(PM)->add(createSLPVectorizerPass()); 48} 49