Vectorize.cpp revision 243830
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// 10243830Sdim// 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 16234285Sdim#include "llvm-c/Transforms/Vectorize.h" 17234285Sdim#include "llvm-c/Initialization.h" 18234285Sdim#include "llvm/InitializePasses.h" 19234285Sdim#include "llvm/PassManager.h" 20234285Sdim#include "llvm/Analysis/Passes.h" 21234285Sdim#include "llvm/Analysis/Verifier.h" 22234285Sdim#include "llvm/Transforms/Vectorize.h" 23234285Sdim 24234285Sdimusing namespace llvm; 25234285Sdim 26243830Sdim/// initializeVectorizationPasses - Initialize all passes linked into the 27234285Sdim/// Vectorization library. 28234285Sdimvoid llvm::initializeVectorization(PassRegistry &Registry) { 29234285Sdim initializeBBVectorizePass(Registry); 30243830Sdim initializeLoopVectorizePass(Registry); 31234285Sdim} 32234285Sdim 33234285Sdimvoid LLVMInitializeVectorization(LLVMPassRegistryRef R) { 34234285Sdim initializeVectorization(*unwrap(R)); 35234285Sdim} 36234285Sdim 37234285Sdimvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM) { 38234285Sdim unwrap(PM)->add(createBBVectorizePass()); 39234285Sdim} 40234285Sdim 41243830Sdimvoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { 42243830Sdim unwrap(PM)->add(createLoopVectorizePass()); 43243830Sdim} 44