Vectorize.h revision 251662
1132718Skan/*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
2132718Skan|*===----------- Vectorization Transformation Library C Interface ---------===*|
3132718Skan|*                                                                            *|
4132718Skan|*                     The LLVM Compiler Infrastructure                       *|
5132718Skan|*                                                                            *|
6132718Skan|* This file is distributed under the University of Illinois Open Source      *|
7132718Skan|* License. See LICENSE.TXT for details.                                      *|
8132718Skan|*                                                                            *|
9132718Skan|*===----------------------------------------------------------------------===*|
10132718Skan|*                                                                            *|
11132718Skan|* This header declares the C interface to libLLVMVectorize.a, which          *|
12132718Skan|* implements various vectorization transformations of the LLVM IR.           *|
13132718Skan|*                                                                            *|
14132718Skan|* Many exotic languages can interoperate with C code but have a harder time  *|
15132718Skan|* with C++ due to name mangling. So in addition to C, this interface enables *|
16132718Skan|* tools written in such languages.                                           *|
17132718Skan|*                                                                            *|
18132718Skan\*===----------------------------------------------------------------------===*/
19132718Skan
20132718Skan#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
21132718Skan#define LLVM_C_TRANSFORMS_VECTORIZE_H
22132718Skan
23132718Skan#include "llvm-c/Core.h"
24132718Skan
25132718Skan#ifdef __cplusplus
26132718Skanextern "C" {
27132718Skan#endif
28132718Skan
29132718Skan/**
30132718Skan * @defgroup LLVMCTransformsVectorize Vectorization transformations
31132718Skan * @ingroup LLVMCTransforms
32132718Skan *
33132718Skan * @{
34132718Skan */
35132718Skan
36132718Skan/** See llvm::createBBVectorizePass function. */
37132718Skanvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM);
38132718Skan
39132718Skan/** See llvm::createLoopVectorizePass function. */
40132718Skanvoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
41132718Skan
42132718Skan/** See llvm::createSLPVectorizerPass function. */
43132718Skanvoid LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
44132718Skan
45132718Skan/**
46132718Skan * @}
47132718Skan */
48132718Skan
49132718Skan#ifdef __cplusplus
50132718Skan}
51132718Skan#endif /* defined(__cplusplus) */
52132718Skan
53132718Skan#endif
54132718Skan
55132718Skan