Vectorize.h revision 7e004d177fe76145f75a9417ed2e281f1b9abaf7
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 29de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel/** See llvm::createBBVectorizePass function. */ 30de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkelvoid LLVMAddBBVectorizePass(LLVMPassManagerRef PM); 31de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 32de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#ifdef __cplusplus 33de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel} 34de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#endif /* defined(__cplusplus) */ 35de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 36de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel#endif 37de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel 38