1//===-- CodeGen.cpp -------------------------------------------------------===//
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 file implements the common initialization routines for the
11// CodeGen library.
12//
13//===----------------------------------------------------------------------===//
14
15#include "llvm/InitializePasses.h"
16#include "llvm-c/Initialization.h"
17#include "llvm/PassRegistry.h"
18
19using namespace llvm;
20
21/// initializeCodeGen - Initialize all passes linked into the CodeGen library.
22void llvm::initializeCodeGen(PassRegistry &Registry) {
23  initializeAtomicExpandPass(Registry);
24  initializeBranchFolderPassPass(Registry);
25  initializeCodeGenPreparePass(Registry);
26  initializeDeadMachineInstructionElimPass(Registry);
27  initializeDetectDeadLanesPass(Registry);
28  initializeDwarfEHPreparePass(Registry);
29  initializeEarlyIfConverterPass(Registry);
30  initializeExpandISelPseudosPass(Registry);
31  initializeExpandPostRAPass(Registry);
32  initializeFinalizeMachineBundlesPass(Registry);
33  initializeFuncletLayoutPass(Registry);
34  initializeGCMachineCodeAnalysisPass(Registry);
35  initializeGCModuleInfoPass(Registry);
36  initializeIfConverterPass(Registry);
37  initializeInterleavedAccessPass(Registry);
38  initializeLiveDebugVariablesPass(Registry);
39  initializeLiveIntervalsPass(Registry);
40  initializeLiveStacksPass(Registry);
41  initializeLiveVariablesPass(Registry);
42  initializeLocalStackSlotPassPass(Registry);
43  initializeLowerIntrinsicsPass(Registry);
44  initializeMachineBlockFrequencyInfoPass(Registry);
45  initializeMachineBlockPlacementPass(Registry);
46  initializeMachineBlockPlacementStatsPass(Registry);
47  initializeMachineCSEPass(Registry);
48  initializeImplicitNullChecksPass(Registry);
49  initializeMachineCombinerPass(Registry);
50  initializeMachineCopyPropagationPass(Registry);
51  initializeMachineDominatorTreePass(Registry);
52  initializeMachineFunctionPrinterPassPass(Registry);
53  initializeMachineLICMPass(Registry);
54  initializeMachineLoopInfoPass(Registry);
55  initializeMachineModuleInfoPass(Registry);
56  initializeMachinePipelinerPass(Registry);
57  initializeMachinePostDominatorTreePass(Registry);
58  initializeMachineSchedulerPass(Registry);
59  initializeMachineSinkingPass(Registry);
60  initializeMachineVerifierPassPass(Registry);
61  initializeXRayInstrumentationPass(Registry);
62  initializePatchableFunctionPass(Registry);
63  initializeOptimizePHIsPass(Registry);
64  initializePEIPass(Registry);
65  initializePHIEliminationPass(Registry);
66  initializePeepholeOptimizerPass(Registry);
67  initializePostMachineSchedulerPass(Registry);
68  initializePostRAHazardRecognizerPass(Registry);
69  initializePostRASchedulerPass(Registry);
70  initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
71  initializeProcessImplicitDefsPass(Registry);
72  initializeRegisterCoalescerPass(Registry);
73  initializeRenameIndependentSubregsPass(Registry);
74  initializeShrinkWrapPass(Registry);
75  initializeSlotIndexesPass(Registry);
76  initializeStackColoringPass(Registry);
77  initializeStackMapLivenessPass(Registry);
78  initializeLiveDebugValuesPass(Registry);
79  initializeSafeStackPass(Registry);
80  initializeStackProtectorPass(Registry);
81  initializeStackSlotColoringPass(Registry);
82  initializeTailDuplicatePassPass(Registry);
83  initializeTargetPassConfigPass(Registry);
84  initializeTwoAddressInstructionPassPass(Registry);
85  initializeUnpackMachineBundlesPass(Registry);
86  initializeUnreachableBlockElimLegacyPassPass(Registry);
87  initializeUnreachableMachineBlockElimPass(Registry);
88  initializeVirtRegMapPass(Registry);
89  initializeVirtRegRewriterPass(Registry);
90  initializeWinEHPreparePass(Registry);
91}
92
93void LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
94  initializeCodeGen(*unwrap(R));
95}
96