LLVM API Documentation
00001 /*===---------------------------Vectorize.h --------------------- -*- C -*-===*\ 00002 |*===----------- Vectorization Transformation Library C Interface ---------===*| 00003 |* *| 00004 |* The LLVM Compiler Infrastructure *| 00005 |* *| 00006 |* This file is distributed under the University of Illinois Open Source *| 00007 |* License. See LICENSE.TXT for details. *| 00008 |* *| 00009 |*===----------------------------------------------------------------------===*| 00010 |* *| 00011 |* This header declares the C interface to libLLVMVectorize.a, which *| 00012 |* implements various vectorization transformations of the LLVM IR. *| 00013 |* *| 00014 |* Many exotic languages can interoperate with C code but have a harder time *| 00015 |* with C++ due to name mangling. So in addition to C, this interface enables *| 00016 |* tools written in such languages. *| 00017 |* *| 00018 \*===----------------------------------------------------------------------===*/ 00019 00020 #ifndef LLVM_C_TRANSFORMS_VECTORIZE_H 00021 #define LLVM_C_TRANSFORMS_VECTORIZE_H 00022 00023 #include "llvm-c/Core.h" 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 /** 00030 * @defgroup LLVMCTransformsVectorize Vectorization transformations 00031 * @ingroup LLVMCTransforms 00032 * 00033 * @{ 00034 */ 00035 00036 /** See llvm::createBBVectorizePass function. */ 00037 void LLVMAddBBVectorizePass(LLVMPassManagerRef PM); 00038 00039 /** See llvm::createLoopVectorizePass function. */ 00040 void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM); 00041 00042 /** See llvm::createSLPVectorizerPass function. */ 00043 void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM); 00044 00045 /** 00046 * @} 00047 */ 00048 00049 #ifdef __cplusplus 00050 } 00051 #endif /* defined(__cplusplus) */ 00052 00053 #endif 00054