Vectorize.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #pragma once
  2. #ifdef __GNUC__
  3. #pragma GCC diagnostic push
  4. #pragma GCC diagnostic ignored "-Wunused-parameter"
  5. #endif
  6. /*===---------------------------Vectorize.h --------------------- -*- C -*-===*\
  7. |*===----------- Vectorization Transformation Library C Interface ---------===*|
  8. |* *|
  9. |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
  10. |* Exceptions. *|
  11. |* See https://llvm.org/LICENSE.txt for license information. *|
  12. |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
  13. |* *|
  14. |*===----------------------------------------------------------------------===*|
  15. |* *|
  16. |* This header declares the C interface to libLLVMVectorize.a, which *|
  17. |* implements various vectorization transformations of the LLVM IR. *|
  18. |* *|
  19. |* Many exotic languages can interoperate with C code but have a harder time *|
  20. |* with C++ due to name mangling. So in addition to C, this interface enables *|
  21. |* tools written in such languages. *|
  22. |* *|
  23. \*===----------------------------------------------------------------------===*/
  24. #ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
  25. #define LLVM_C_TRANSFORMS_VECTORIZE_H
  26. #include "llvm-c/ExternC.h"
  27. #include "llvm-c/Types.h"
  28. LLVM_C_EXTERN_C_BEGIN
  29. /**
  30. * @defgroup LLVMCTransformsVectorize Vectorization transformations
  31. * @ingroup LLVMCTransforms
  32. *
  33. * @{
  34. */
  35. /** See llvm::createLoopVectorizePass function. */
  36. void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM);
  37. /** See llvm::createSLPVectorizerPass function. */
  38. void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
  39. /**
  40. * @}
  41. */
  42. LLVM_C_EXTERN_C_END
  43. #endif
  44. #ifdef __GNUC__
  45. #pragma GCC diagnostic pop
  46. #endif