Home | History | Annotate | Download | only in Transforms
      1 /*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
      2 |*===----------- Vectorization Transformation Library C Interface ---------===*|
      3 |*                                                                            *|
      4 |*                     The LLVM Compiler Infrastructure                       *|
      5 |*                                                                            *|
      6 |* This file is distributed under the University of Illinois Open Source      *|
      7 |* License. See LICENSE.TXT for details.                                      *|
      8 |*                                                                            *|
      9 |*===----------------------------------------------------------------------===*|
     10 |*                                                                            *|
     11 |* This header declares the C interface to libLLVMVectorize.a, which          *|
     12 |* implements various vectorization transformations of the LLVM IR.           *|
     13 |*                                                                            *|
     14 |* Many exotic languages can interoperate with C code but have a harder time  *|
     15 |* with C++ due to name mangling. So in addition to C, this interface enables *|
     16 |* tools written in such languages.                                           *|
     17 |*                                                                            *|
     18 \*===----------------------------------------------------------------------===*/
     19 
     20 #ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
     21 #define LLVM_C_TRANSFORMS_VECTORIZE_H
     22 
     23 #include "llvm-c/Core.h"
     24 
     25 #ifdef __cplusplus
     26 extern "C" {
     27 #endif
     28 
     29 /**
     30  * @defgroup LLVMCTransformsVectorize Vectorization transformations
     31  * @ingroup LLVMCTransforms
     32  *
     33  * @{
     34  */
     35 
     36 /** See llvm::createBBVectorizePass function. */
     37 void LLVMAddBBVectorizePass(LLVMPassManagerRef PM);
     38 
     39 /** See llvm::createLoopVectorizePass function. */
     40 void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
     41 
     42 /** See llvm::createSLPVectorizerPass function. */
     43 void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
     44 
     45 /**
     46  * @}
     47  */
     48 
     49 #ifdef __cplusplus
     50 }
     51 #endif /* defined(__cplusplus) */
     52 
     53 #endif
     54 
     55