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
26extern "C" {
27#endif
28
29/**
30 * @defgroup LLVMCTransformsVectorize Vectorization transformations
31 * @ingroup LLVMCTransforms
32 *
33 * @{
34 */
35
36/** See llvm::createBBVectorizePass function. */
37void LLVMAddBBVectorizePass(LLVMPassManagerRef PM);
38
39/** See llvm::createLoopVectorizePass function. */
40void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
41
42/** See llvm::createSLPVectorizerPass function. */
43void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
44
45/**
46 * @}
47 */
48
49#ifdef __cplusplus
50}
51#endif /* defined(__cplusplus) */
52
53#endif
54
55