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)217330f729Sjoergvoid 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)1247330f729Sjoergvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 1257330f729Sjoerg initializeCodeGen(*unwrap(R)); 1267330f729Sjoerg } 127