1fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson/*===-- llvm-c/Initialization.h - Initialization C Interface ------*- C -*-===*\
2fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                                                                            *|
3fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                     The LLVM Compiler Infrastructure                       *|
4fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                                                                            *|
5fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|* This file is distributed under the University of Illinois Open Source      *|
6fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|* License. See LICENSE.TXT for details.                                      *|
7fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                                                                            *|
8fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*===----------------------------------------------------------------------===*|
9fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                                                                            *|
10fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|* This header declares the C interface to LLVM initialization routines,      *|
11fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|* which must be called before you can use the functionality provided by      *|
12fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|* the corresponding LLVM library.                                            *|
13fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson|*                                                                            *|
14fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson\*===----------------------------------------------------------------------===*/
15fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
16fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#ifndef LLVM_C_INITIALIZEPASSES_H
17fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#define LLVM_C_INITIALIZEPASSES_H
18fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
19fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#include "llvm-c/Core.h"
20fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
21fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#ifdef __cplusplus
22fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Andersonextern "C" {
23fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#endif
24fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
256244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/**
266244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @defgroup LLVMCInitialization Initialization Routines
276244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @ingroup LLVMC
286244b518880842f2c15200ee041e06799e4cc779Gregory Szorc *
296244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * This module contains routines used to initialize the LLVM system.
306244b518880842f2c15200ee041e06799e4cc779Gregory Szorc *
316244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @{
326244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */
336244b518880842f2c15200ee041e06799e4cc779Gregory Szorc
34b8a1ccfc4b2eb84cc59465e2109019c9f85c9114Owen Andersonvoid LLVMInitializeCore(LLVMPassRegistryRef R);
35fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Andersonvoid LLVMInitializeTransformUtils(LLVMPassRegistryRef R);
36fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Andersonvoid LLVMInitializeScalarOpts(LLVMPassRegistryRef R);
3724c4898973a074713201fb9351d302b9f7733e92Michael Gottesmanvoid LLVMInitializeObjCARCOpts(LLVMPassRegistryRef R);
38de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkelvoid LLVMInitializeVectorization(LLVMPassRegistryRef R);
3974cfb0ce1c9525cfaa4f484edf555ea18b379370Owen Andersonvoid LLVMInitializeInstCombine(LLVMPassRegistryRef R);
402c81296bc237cb26c2bb789514e331b3b5b31f79Owen Andersonvoid LLVMInitializeIPO(LLVMPassRegistryRef R);
41aa4897fa1323ef78d5e72a80c74e96eb21f72057Owen Andersonvoid LLVMInitializeInstrumentation(LLVMPassRegistryRef R);
42861f4c38de1654515377222c05d544b1442bdd00Owen Andersonvoid LLVMInitializeAnalysis(LLVMPassRegistryRef R);
43861f4c38de1654515377222c05d544b1442bdd00Owen Andersonvoid LLVMInitializeIPA(LLVMPassRegistryRef R);
4478b152470d80c27eec82087b2a3c3fdf809e0050Owen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R);
459966306aa7eab65d160df88b36ab13cd15dbecdbOwen Andersonvoid LLVMInitializeTarget(LLVMPassRegistryRef R);
46fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
476244b518880842f2c15200ee041e06799e4cc779Gregory Szorc/**
486244b518880842f2c15200ee041e06799e4cc779Gregory Szorc * @}
496244b518880842f2c15200ee041e06799e4cc779Gregory Szorc */
506244b518880842f2c15200ee041e06799e4cc779Gregory Szorc
51fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#ifdef __cplusplus
52fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson}
53fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#endif
54fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson
55fbd121e1983323a75ae5de78f4b57e939e4c7a38Owen Anderson#endif
56