1234285Sdim//===-- Vectorize.cpp -----------------------------------------------------===// 2234285Sdim// 3234285Sdim// The LLVM Compiler Infrastructure 4234285Sdim// 5234285Sdim// This file is distributed under the University of Illinois Open Source 6234285Sdim// License. See LICENSE.TXT for details. 7234285Sdim// 8234285Sdim//===----------------------------------------------------------------------===// 9234285Sdim// 10245431Sdim// This file implements common infrastructure for libLLVMVectorizeOpts.a, which 11234285Sdim// implements several vectorization transformations over the LLVM intermediate 12234285Sdim// representation, including the C bindings for that library. 13234285Sdim// 14234285Sdim//===----------------------------------------------------------------------===// 15234285Sdim 16252723Sdim#include "llvm/Transforms/Vectorize.h" 17252723Sdim#include "llvm-c/Initialization.h" 18234285Sdim#include "llvm-c/Transforms/Vectorize.h" 19252723Sdim#include "llvm/Analysis/Passes.h" 20252723Sdim#include "llvm/Analysis/Verifier.h" 21234285Sdim#include "llvm/InitializePasses.h" 22234285Sdim#include "llvm/PassManager.h" 23234285Sdim 24234285Sdimusing namespace llvm; 25234285Sdim 26245431Sdim/// initializeVectorizationPasses - Initialize all passes linked into the 27234285Sdim/// Vectorization library. 28234285Sdimvoid llvm::initializeVectorization(PassRegistry &Registry) { 29234285Sdim initializeBBVectorizePass(Registry); 30245431Sdim initializeLoopVectorizePass(Registry); 31252723Sdim initializeSLPVectorizerPass(Registry); 32234285Sdim} 33234285Sdim 34234285Sdimvoid LLVMInitializeVectorization(LLVMPassRegistryRef R) { 35234285Sdim initializeVectorization(*unwrap(R)); 36234285Sdim} 37234285Sdim 38234285Sdimvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM) { 39234285Sdim unwrap(PM)->add(createBBVectorizePass()); 40234285Sdim} 41234285Sdim 42245431Sdimvoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { 43245431Sdim unwrap(PM)->add(createLoopVectorizePass()); 44245431Sdim} 45252723Sdim 46252723Sdimvoid LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) { 47252723Sdim unwrap(PM)->add(createSLPVectorizerPass()); 48252723Sdim} 49