Home | History | Annotate | Download | only in Transforms
      1 /*===-- Utils.h - Transformation Utils Library C Interface ------*- C++ -*-===*\
      2 |*                                                                            *|
      3 |*                     The LLVM Compiler Infrastructure                       *|
      4 |*                                                                            *|
      5 |* This file is distributed under the University of Illinois Open Source      *|
      6 |* License. See LICENSE.TXT for details.                                      *|
      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/Types.h"
     23 
     24 #ifdef __cplusplus
     25 extern "C" {
     26 #endif
     27 
     28 /**
     29  * @defgroup LLVMCTransformsUtils Transformation Utilities
     30  * @ingroup LLVMCTransforms
     31  *
     32  * @{
     33  */
     34 
     35 /** See llvm::createLowerSwitchPass function. */
     36 void LLVMAddLowerSwitchPass(LLVMPassManagerRef PM);
     37 
     38 /** See llvm::createPromoteMemoryToRegisterPass function. */
     39 void LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM);
     40 
     41 /**
     42  * @}
     43  */
     44 
     45 #ifdef __cplusplus
     46 }
     47 #endif /* defined(__cplusplus) */
     48 
     49 #endif
     50 
     51