17e004d177fe76145f75a9417ed2e281f1b9abaf7Hal Finkel/*===---------------------------Vectorize.h --------------------- -*- C -*-===*\ 2de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|*===----------- Vectorization Transformation Library C Interface ---------===*| 3de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 4de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* The LLVM Compiler Infrastructure *| 5de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 6de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* This file is distributed under the University of Illinois Open Source *| 7de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* License. See LICENSE.TXT for details. *| 8de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 9de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|*===----------------------------------------------------------------------===*| 10de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 11de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* This header declares the C interface to libLLVMVectorize.a, which *| 12de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* implements various vectorization transformations of the LLVM IR. *| 13de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 14de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* Many exotic languages can interoperate with C code but have a harder time *| 15de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* with C++ due to name mangling. So in addition to C, this interface enables *| 16de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* tools written in such languages. *| 17de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel|* *| 18de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel\*===----------------------------------------------------------------------===*/ 19de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 20de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H 21de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#define LLVM_C_TRANSFORMS_VECTORIZE_H 22de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 23de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#include "llvm-c/Core.h" 24de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 25de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#ifdef __cplusplus 26de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkelextern "C" { 27de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#endif 28de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 296244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/** 306244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @defgroup LLVMCTransformsVectorize Vectorization transformations 316244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @ingroup LLVMCTransforms 326244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * 336244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @{ 346244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */ 356244b518880842f2c15200ee041e06799e4cc779Gregory Szorc 36de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel/** See llvm::createBBVectorizePass function. */ 37de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkelvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM); 38de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 3963a4c24616fafa2b86d6391308ffd93e012115e4Benjamin Kramer/** See llvm::createLoopVectorizePass function. */ 4063a4c24616fafa2b86d6391308ffd93e012115e4Benjamin Kramervoid LLVMAddLoopVectorizePass(LLVMPassManagerRef PM); 4163a4c24616fafa2b86d6391308ffd93e012115e4Benjamin Kramer 42acc897a5e1bd7320da5aab728b9e0c39552f3816Benjamin Kramer/** See llvm::createSLPVectorizerPass function. */ 43acc897a5e1bd7320da5aab728b9e0c39552f3816Benjamin Kramervoid LLVMAddSLPVectorizePass(LLVMPassManagerRef PM); 44acc897a5e1bd7320da5aab728b9e0c39552f3816Benjamin Kramer 456244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/** 466244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @} 476244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */ 486244b518880842f2c15200ee041e06799e4cc779Gregory Szorc 49de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#ifdef __cplusplus 50de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel} 51de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#endif /* defined(__cplusplus) */ 52de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 53de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#endif 54de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 55