Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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

  1. /*===-- Utils.h - Transformation Utils Library C Interface ------*- C++ -*-===*\
  2. |*                                                                            *|
  3. |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
  4. |* Exceptions.                                                                *|
  5. |* See https://llvm.org/LICENSE.txt for license information.                  *|
  6. |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
  7. |*                                                                            *|
  8. |*===----------------------------------------------------------------------===*|
  9. |*                                                                            *|
  10. |* This header declares the C interface to libLLVMTransformUtils.a, which     *|
  11. |* implements various transformation utilities of the LLVM IR.                *|
  12. |*                                                                            *|
  13. |* Many exotic languages can interoperate with C code but have a harder time  *|
  14. |* with C++ due to name mangling. So in addition to C, this interface enables *|
  15. |* tools written in such languages.                                           *|
  16. |*                                                                            *|
  17. \*===----------------------------------------------------------------------===*/
  18.  
  19. #ifndef LLVM_C_TRANSFORMS_UTILS_H
  20. #define LLVM_C_TRANSFORMS_UTILS_H
  21.  
  22. #include "llvm-c/ExternC.h"
  23. #include "llvm-c/Types.h"
  24.  
  25. LLVM_C_EXTERN_C_BEGIN
  26.  
  27. /**
  28.  * @defgroup LLVMCTransformsUtils Transformation Utilities
  29.  * @ingroup LLVMCTransforms
  30.  *
  31.  * @{
  32.  */
  33.  
  34. /** See llvm::createLowerSwitchPass function. */
  35. void LLVMAddLowerSwitchPass(LLVMPassManagerRef PM);
  36.  
  37. /** See llvm::createPromoteMemoryToRegisterPass function. */
  38. void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
  39.  
  40. /** See llvm::createAddDiscriminatorsPass function. */
  41. void LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM);
  42.  
  43. /**
  44.  * @}
  45.  */
  46.  
  47. LLVM_C_EXTERN_C_END
  48.  
  49. #endif
  50.  
  51.