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)28void llvm::initializeVectorization(PassRegistry &Registry) { 29 initializeBBVectorizePass(Registry); 30 initializeLoopVectorizePass(Registry); 31 initializeSLPVectorizerPass(Registry); 32 initializeLoadStoreVectorizerPass(Registry); 33 } 34 LLVMInitializeVectorization(LLVMPassRegistryRef R)35void LLVMInitializeVectorization(LLVMPassRegistryRef R) { 36 initializeVectorization(*unwrap(R)); 37 } 38 LLVMAddBBVectorizePass(LLVMPassManagerRef PM)39void LLVMAddBBVectorizePass(LLVMPassManagerRef PM) { 40 unwrap(PM)->add(createBBVectorizePass()); 41 } 42 LLVMAddLoopVectorizePass(LLVMPassManagerRef PM)43void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { 44 unwrap(PM)->add(createLoopVectorizePass()); 45 } 46 LLVMAddSLPVectorizePass(LLVMPassManagerRef PM)47void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) { 48 unwrap(PM)->add(createSLPVectorizerPass()); 49 } 50