1/*===-- llvm-c/Initialization.h - Initialization 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 LLVM initialization routines, *|
11|* which must be called before you can use the functionality provided by *|
12|* the corresponding LLVM library. *|
13|* *|
14\*===----------------------------------------------------------------------===*/
15
16#ifndef LLVM_C_INITIALIZATION_H
17#define LLVM_C_INITIALIZATION_H
18
19#include "llvm-c/ExternC.h"
20#include "llvm-c/Types.h"
21
22LLVM_C_EXTERN_C_BEGIN
23
24/**
25 * @defgroup LLVMCInitialization Initialization Routines
26 * @ingroup LLVMC
27 *
28 * This module contains routines used to initialize the LLVM system.
29 *
30 * @{
31 */
32
33void LLVMInitializeCore(LLVMPassRegistryRef R);
34void LLVMInitializeTransformUtils(LLVMPassRegistryRef R);
35void LLVMInitializeScalarOpts(LLVMPassRegistryRef R);
36void LLVMInitializeObjCARCOpts(LLVMPassRegistryRef R);
37void LLVMInitializeVectorization(LLVMPassRegistryRef R);
38void LLVMInitializeInstCombine(LLVMPassRegistryRef R);
39void LLVMInitializeAggressiveInstCombiner(LLVMPassRegistryRef R);
40void LLVMInitializeIPO(LLVMPassRegistryRef R);
41void LLVMInitializeInstrumentation(LLVMPassRegistryRef R);
42void LLVMInitializeAnalysis(LLVMPassRegistryRef R);
43void LLVMInitializeIPA(LLVMPassRegistryRef R);
44void LLVMInitializeCodeGen(LLVMPassRegistryRef R);
45void LLVMInitializeTarget(LLVMPassRegistryRef R);
46
47/**
48 * @}
49 */
50
51LLVM_C_EXTERN_C_END
52
53#endif
54