xref: /netbsd-src/external/apache2/llvm/dist/llvm/lib/CodeGen/CodeGen.cpp (revision 82d56013d7b633d116a93943de88e08335357a7c)
17330f729Sjoerg //===-- CodeGen.cpp -------------------------------------------------------===//
27330f729Sjoerg //
37330f729Sjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
47330f729Sjoerg // See https://llvm.org/LICENSE.txt for license information.
57330f729Sjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
67330f729Sjoerg //
77330f729Sjoerg //===----------------------------------------------------------------------===//
87330f729Sjoerg //
97330f729Sjoerg // This file implements the common initialization routines for the
107330f729Sjoerg // CodeGen library.
117330f729Sjoerg //
127330f729Sjoerg //===----------------------------------------------------------------------===//
137330f729Sjoerg 
147330f729Sjoerg #include "llvm-c/Initialization.h"
157330f729Sjoerg #include "llvm/InitializePasses.h"
167330f729Sjoerg #include "llvm/PassRegistry.h"
177330f729Sjoerg 
187330f729Sjoerg using namespace llvm;
197330f729Sjoerg 
207330f729Sjoerg /// initializeCodeGen - Initialize all passes linked into the CodeGen library.
initializeCodeGen(PassRegistry & Registry)217330f729Sjoerg void llvm::initializeCodeGen(PassRegistry &Registry) {
227330f729Sjoerg   initializeAtomicExpandPass(Registry);
23*82d56013Sjoerg   initializeBasicBlockSectionsPass(Registry);
247330f729Sjoerg   initializeBranchFolderPassPass(Registry);
257330f729Sjoerg   initializeBranchRelaxationPass(Registry);
267330f729Sjoerg   initializeCFGuardLongjmpPass(Registry);
277330f729Sjoerg   initializeCFIInstrInserterPass(Registry);
28*82d56013Sjoerg   initializeCheckDebugMachineModulePass(Registry);
297330f729Sjoerg   initializeCodeGenPreparePass(Registry);
307330f729Sjoerg   initializeDeadMachineInstructionElimPass(Registry);
31*82d56013Sjoerg   initializeDebugifyMachineModulePass(Registry);
327330f729Sjoerg   initializeDetectDeadLanesPass(Registry);
33*82d56013Sjoerg   initializeDwarfEHPrepareLegacyPassPass(Registry);
347330f729Sjoerg   initializeEarlyIfConverterPass(Registry);
357330f729Sjoerg   initializeEarlyIfPredicatorPass(Registry);
367330f729Sjoerg   initializeEarlyMachineLICMPass(Registry);
377330f729Sjoerg   initializeEarlyTailDuplicatePass(Registry);
387330f729Sjoerg   initializeExpandMemCmpPassPass(Registry);
397330f729Sjoerg   initializeExpandPostRAPass(Registry);
407330f729Sjoerg   initializeFEntryInserterPass(Registry);
417330f729Sjoerg   initializeFinalizeISelPass(Registry);
427330f729Sjoerg   initializeFinalizeMachineBundlesPass(Registry);
43*82d56013Sjoerg   initializeFixupStatepointCallerSavedPass(Registry);
447330f729Sjoerg   initializeFuncletLayoutPass(Registry);
457330f729Sjoerg   initializeGCMachineCodeAnalysisPass(Registry);
467330f729Sjoerg   initializeGCModuleInfoPass(Registry);
477330f729Sjoerg   initializeHardwareLoopsPass(Registry);
487330f729Sjoerg   initializeIfConverterPass(Registry);
497330f729Sjoerg   initializeImplicitNullChecksPass(Registry);
507330f729Sjoerg   initializeIndirectBrExpandPassPass(Registry);
517330f729Sjoerg   initializeInterleavedLoadCombinePass(Registry);
527330f729Sjoerg   initializeInterleavedAccessPass(Registry);
537330f729Sjoerg   initializeLiveDebugValuesPass(Registry);
547330f729Sjoerg   initializeLiveDebugVariablesPass(Registry);
557330f729Sjoerg   initializeLiveIntervalsPass(Registry);
567330f729Sjoerg   initializeLiveRangeShrinkPass(Registry);
577330f729Sjoerg   initializeLiveStacksPass(Registry);
587330f729Sjoerg   initializeLiveVariablesPass(Registry);
597330f729Sjoerg   initializeLocalStackSlotPassPass(Registry);
607330f729Sjoerg   initializeLowerIntrinsicsPass(Registry);
617330f729Sjoerg   initializeMIRCanonicalizerPass(Registry);
627330f729Sjoerg   initializeMIRNamerPass(Registry);
637330f729Sjoerg   initializeMachineBlockFrequencyInfoPass(Registry);
647330f729Sjoerg   initializeMachineBlockPlacementPass(Registry);
657330f729Sjoerg   initializeMachineBlockPlacementStatsPass(Registry);
667330f729Sjoerg   initializeMachineCSEPass(Registry);
677330f729Sjoerg   initializeMachineCombinerPass(Registry);
687330f729Sjoerg   initializeMachineCopyPropagationPass(Registry);
697330f729Sjoerg   initializeMachineDominatorTreePass(Registry);
707330f729Sjoerg   initializeMachineFunctionPrinterPassPass(Registry);
717330f729Sjoerg   initializeMachineLICMPass(Registry);
727330f729Sjoerg   initializeMachineLoopInfoPass(Registry);
737330f729Sjoerg   initializeMachineModuleInfoWrapperPassPass(Registry);
747330f729Sjoerg   initializeMachineOptimizationRemarkEmitterPassPass(Registry);
757330f729Sjoerg   initializeMachineOutlinerPass(Registry);
767330f729Sjoerg   initializeMachinePipelinerPass(Registry);
777330f729Sjoerg   initializeModuloScheduleTestPass(Registry);
787330f729Sjoerg   initializeMachinePostDominatorTreePass(Registry);
797330f729Sjoerg   initializeMachineRegionInfoPassPass(Registry);
807330f729Sjoerg   initializeMachineSchedulerPass(Registry);
817330f729Sjoerg   initializeMachineSinkingPass(Registry);
827330f729Sjoerg   initializeMachineVerifierPassPass(Registry);
837330f729Sjoerg   initializeOptimizePHIsPass(Registry);
847330f729Sjoerg   initializePEIPass(Registry);
857330f729Sjoerg   initializePHIEliminationPass(Registry);
867330f729Sjoerg   initializePatchableFunctionPass(Registry);
877330f729Sjoerg   initializePeepholeOptimizerPass(Registry);
887330f729Sjoerg   initializePostMachineSchedulerPass(Registry);
897330f729Sjoerg   initializePostRAHazardRecognizerPass(Registry);
907330f729Sjoerg   initializePostRAMachineSinkingPass(Registry);
917330f729Sjoerg   initializePostRASchedulerPass(Registry);
927330f729Sjoerg   initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
937330f729Sjoerg   initializeProcessImplicitDefsPass(Registry);
947330f729Sjoerg   initializeRABasicPass(Registry);
957330f729Sjoerg   initializeRAGreedyPass(Registry);
967330f729Sjoerg   initializeRegAllocFastPass(Registry);
977330f729Sjoerg   initializeRegUsageInfoCollectorPass(Registry);
987330f729Sjoerg   initializeRegUsageInfoPropagationPass(Registry);
997330f729Sjoerg   initializeRegisterCoalescerPass(Registry);
1007330f729Sjoerg   initializeRenameIndependentSubregsPass(Registry);
1017330f729Sjoerg   initializeSafeStackLegacyPassPass(Registry);
1027330f729Sjoerg   initializeShrinkWrapPass(Registry);
103*82d56013Sjoerg   initializeSjLjEHPreparePass(Registry);
1047330f729Sjoerg   initializeSlotIndexesPass(Registry);
1057330f729Sjoerg   initializeStackColoringPass(Registry);
1067330f729Sjoerg   initializeStackMapLivenessPass(Registry);
1077330f729Sjoerg   initializeStackProtectorPass(Registry);
1087330f729Sjoerg   initializeStackSlotColoringPass(Registry);
109*82d56013Sjoerg   initializeStripDebugMachineModulePass(Registry);
1107330f729Sjoerg   initializeTailDuplicatePass(Registry);
1117330f729Sjoerg   initializeTargetPassConfigPass(Registry);
1127330f729Sjoerg   initializeTwoAddressInstructionPassPass(Registry);
113*82d56013Sjoerg   initializeTypePromotionPass(Registry);
1147330f729Sjoerg   initializeUnpackMachineBundlesPass(Registry);
1157330f729Sjoerg   initializeUnreachableBlockElimLegacyPassPass(Registry);
1167330f729Sjoerg   initializeUnreachableMachineBlockElimPass(Registry);
1177330f729Sjoerg   initializeVirtRegMapPass(Registry);
1187330f729Sjoerg   initializeVirtRegRewriterPass(Registry);
1197330f729Sjoerg   initializeWasmEHPreparePass(Registry);
1207330f729Sjoerg   initializeWinEHPreparePass(Registry);
1217330f729Sjoerg   initializeXRayInstrumentationPass(Registry);
1227330f729Sjoerg }
1237330f729Sjoerg 
LLVMInitializeCodeGen(LLVMPassRegistryRef R)1247330f729Sjoerg void LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
1257330f729Sjoerg   initializeCodeGen(*unwrap(R));
1267330f729Sjoerg }
127