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/Types.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