blob: a82ef49cb167258efc363e080a089f0c56a32678 [file] [log] [blame]
Hal Finkel8a3aebe2012-02-01 05:51:45 +00001/*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
Hal Finkelc34e5112012-02-01 03:51:43 +00002|*===----------- 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
Eric Christophera6b96002015-12-18 01:46:52 +000023#include "llvm-c/Types.h"
Hal Finkelc34e5112012-02-01 03:51:43 +000024
25#ifdef __cplusplus
26extern "C" {
27#endif
28
Gregory Szorc34c863a2012-03-21 03:54:29 +000029/**
30 * @defgroup LLVMCTransformsVectorize Vectorization transformations
31 * @ingroup LLVMCTransforms
32 *
33 * @{
34 */
35
Hal Finkelc34e5112012-02-01 03:51:43 +000036/** See llvm::createBBVectorizePass function. */
37void LLVMAddBBVectorizePass(LLVMPassManagerRef PM);
38
Benjamin Kramera74129a2012-10-20 12:53:26 +000039/** See llvm::createLoopVectorizePass function. */
40void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
41
Benjamin Kramerc86fdf12013-04-11 11:36:36 +000042/** See llvm::createSLPVectorizerPass function. */
43void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
44
Gregory Szorc34c863a2012-03-21 03:54:29 +000045/**
46 * @}
47 */
48
Hal Finkelc34e5112012-02-01 03:51:43 +000049#ifdef __cplusplus
50}
51#endif /* defined(__cplusplus) */
52
53#endif