Vectorize.cpp revision 288943
1251662Sdim//===-- 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 16249423Sdim#include "llvm/Transforms/Vectorize.h" 17249423Sdim#include "llvm-c/Initialization.h" 18234285Sdim#include "llvm-c/Transforms/Vectorize.h" 19249423Sdim#include "llvm/Analysis/Passes.h" 20276479Sdim#include "llvm/IR/Verifier.h" 21234285Sdim#include "llvm/InitializePasses.h" 22288943Sdim#include "llvm/IR/LegacyPassManager.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); 31251662Sdim 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 42243830Sdimvoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { 43243830Sdim unwrap(PM)->add(createLoopVectorizePass()); 44243830Sdim} 45251662Sdim 46251662Sdimvoid LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) { 47251662Sdim unwrap(PM)->add(createSLPVectorizerPass()); 48251662Sdim} 49