LLVM API Documentation

c/Transforms/Vectorize.h
Go to the documentation of this file.
00001 /*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
00002 |*===----------- Vectorization Transformation Library C Interface ---------===*|
00003 |*                                                                            *|
00004 |*                     The LLVM Compiler Infrastructure                       *|
00005 |*                                                                            *|
00006 |* This file is distributed under the University of Illinois Open Source      *|
00007 |* License. See LICENSE.TXT for details.                                      *|
00008 |*                                                                            *|
00009 |*===----------------------------------------------------------------------===*|
00010 |*                                                                            *|
00011 |* This header declares the C interface to libLLVMVectorize.a, which          *|
00012 |* implements various vectorization transformations of the LLVM IR.           *|
00013 |*                                                                            *|
00014 |* Many exotic languages can interoperate with C code but have a harder time  *|
00015 |* with C++ due to name mangling. So in addition to C, this interface enables *|
00016 |* tools written in such languages.                                           *|
00017 |*                                                                            *|
00018 \*===----------------------------------------------------------------------===*/
00019 
00020 #ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
00021 #define LLVM_C_TRANSFORMS_VECTORIZE_H
00022 
00023 #include "llvm-c/Core.h"
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 /**
00030  * @defgroup LLVMCTransformsVectorize Vectorization transformations
00031  * @ingroup LLVMCTransforms
00032  *
00033  * @{
00034  */
00035 
00036 /** See llvm::createBBVectorizePass function. */
00037 void LLVMAddBBVectorizePass(LLVMPassManagerRef PM);
00038 
00039 /** See llvm::createLoopVectorizePass function. */
00040 void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
00041 
00042 /** See llvm::createSLPVectorizerPass function. */
00043 void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
00044 
00045 /**
00046  * @}
00047  */
00048 
00049 #ifdef __cplusplus
00050 }
00051 #endif /* defined(__cplusplus) */
00052 
00053 #endif
00054