1234285Sdim/*===---------------------------Vectorize.h --------------------- -*- C -*-===*\ 2234285Sdim|*===----------- Vectorization Transformation Library C Interface ---------===*| 3234285Sdim|* *| 4234285Sdim|* The LLVM Compiler Infrastructure *| 5234285Sdim|* *| 6234285Sdim|* This file is distributed under the University of Illinois Open Source *| 7234285Sdim|* License. See LICENSE.TXT for details. *| 8234285Sdim|* *| 9234285Sdim|*===----------------------------------------------------------------------===*| 10234285Sdim|* *| 11234285Sdim|* This header declares the C interface to libLLVMVectorize.a, which *| 12234285Sdim|* implements various vectorization transformations of the LLVM IR. *| 13234285Sdim|* *| 14234285Sdim|* Many exotic languages can interoperate with C code but have a harder time *| 15234285Sdim|* with C++ due to name mangling. So in addition to C, this interface enables *| 16234285Sdim|* tools written in such languages. *| 17234285Sdim|* *| 18234285Sdim\*===----------------------------------------------------------------------===*/ 19234285Sdim 20234285Sdim#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H 21234285Sdim#define LLVM_C_TRANSFORMS_VECTORIZE_H 22234285Sdim 23234285Sdim#include "llvm-c/Core.h" 24234285Sdim 25234285Sdim#ifdef __cplusplus 26234285Sdimextern "C" { 27234285Sdim#endif 28234285Sdim 29234285Sdim/** 30234285Sdim * @defgroup LLVMCTransformsVectorize Vectorization transformations 31234285Sdim * @ingroup LLVMCTransforms 32234285Sdim * 33234285Sdim * @{ 34234285Sdim */ 35234285Sdim 36234285Sdim/** See llvm::createBBVectorizePass function. */ 37234285Sdimvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM); 38234285Sdim 39243830Sdim/** See llvm::createLoopVectorizePass function. */ 40243830Sdimvoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM); 41243830Sdim 42251662Sdim/** See llvm::createSLPVectorizerPass function. */ 43251662Sdimvoid LLVMAddSLPVectorizePass(LLVMPassManagerRef PM); 44251662Sdim 45234285Sdim/** 46234285Sdim * @} 47234285Sdim */ 48234285Sdim 49234285Sdim#ifdef __cplusplus 50234285Sdim} 51234285Sdim#endif /* defined(__cplusplus) */ 52234285Sdim 53234285Sdim#endif 54234285Sdim 55