Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
  2. |*===----------- Vectorization Transformation Library C Interface ---------===*|
  3. |*                                                                            *|
  4. |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
  5. |* Exceptions.                                                                *|
  6. |* See https://llvm.org/LICENSE.txt for license information.                  *|
  7. |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
  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.  
  23. #include "llvm-c/ExternC.h"
  24. #include "llvm-c/Types.h"
  25.  
  26. LLVM_C_EXTERN_C_BEGIN
  27.  
  28. /**
  29.  * @defgroup LLVMCTransformsVectorize Vectorization transformations
  30.  * @ingroup LLVMCTransforms
  31.  *
  32.  * @{
  33.  */
  34.  
  35. /** See llvm::createLoopVectorizePass function. */
  36. void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
  37.  
  38. /** See llvm::createSLPVectorizerPass function. */
  39. void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
  40.  
  41. /**
  42.  * @}
  43.  */
  44.  
  45. LLVM_C_EXTERN_C_END
  46.  
  47. #endif
  48.