180fc0762SOwen Anderson //===-- CodeGen.cpp -------------------------------------------------------===// 280fc0762SOwen Anderson // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 680fc0762SOwen Anderson // 780fc0762SOwen Anderson //===----------------------------------------------------------------------===// 880fc0762SOwen Anderson // 980fc0762SOwen Anderson // This file implements the common initialization routines for the 1080fc0762SOwen Anderson // CodeGen library. 1180fc0762SOwen Anderson // 1280fc0762SOwen Anderson //===----------------------------------------------------------------------===// 1380fc0762SOwen Anderson 1480fc0762SOwen Anderson #include "llvm-c/Initialization.h" 156bda14b3SChandler Carruth #include "llvm/InitializePasses.h" 168a8cd2baSChandler Carruth #include "llvm/PassRegistry.h" 1780fc0762SOwen Anderson 1880fc0762SOwen Anderson using namespace llvm; 1980fc0762SOwen Anderson 2080fc0762SOwen Anderson /// initializeCodeGen - Initialize all passes linked into the CodeGen library. initializeCodeGen(PassRegistry & Registry)2180fc0762SOwen Andersonvoid llvm::initializeCodeGen(PassRegistry &Registry) { 2259c23cd9SRobin Morisset initializeAtomicExpandPass(Registry); 238d943a92SSnehasish Kumar initializeBasicBlockSectionsPass(Registry); 2458648e4eSAndrew Trick initializeBranchFolderPassPass(Registry); 2536919a4fSMatt Arsenault initializeBranchRelaxationPass(Registry); 26d157a9bcSAndrew Paverd initializeCFGuardLongjmpPass(Registry); 27b4ad28daSMomchil Velikov initializeCFIFixupPass(Registry); 28e2bfcd63SPetar Jovanovic initializeCFIInstrInserterPass(Registry); 2939584ae5SXiang1 Zhang initializeCheckDebugMachineModulePass(Registry); 30a349084aSQuentin Colombet initializeCodeGenPreparePass(Registry); 3180fc0762SOwen Anderson initializeDeadMachineInstructionElimPass(Registry); 321adeeabbSDaniel Sanders initializeDebugifyMachineModulePass(Registry); 33fbe85ae1SMatthias Braun initializeDetectDeadLanesPass(Registry); 34e6b1a27fSRoman Lebedev initializeDwarfEHPrepareLegacyPassPass(Registry); 35f8a63a15SJakob Stoklund Olesen initializeEarlyIfConverterPass(Registry); 36be699bf3SThomas Raoux initializeEarlyIfPredicatorPass(Registry); 374a7c8e7aSMatthias Braun initializeEarlyMachineLICMPass(Registry); 383ab9fcb9SMatthias Braun initializeEarlyTailDuplicatePass(Registry); 392bf8d774SDmitri Gribenko initializeExpandMemCmpPassPass(Registry); 40be0a0506SReid Kleckner initializeExpandPostRAPass(Registry); 41a7c041d1SNirav Dave initializeFEntryInserterPass(Registry); 429cac4e6dSMatt Arsenault initializeFinalizeISelPass(Registry); 436e670529SMatthias Braun initializeFinalizeMachineBundlesPass(Registry); 444275eb13SSerguei Katkov initializeFixupStatepointCallerSavedPass(Registry); 4597890230SDavid Majnemer initializeFuncletLayoutPass(Registry); 461fa5bcbeSAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 4780fc0762SOwen Anderson initializeGCModuleInfoPass(Registry); 48c5ef502eSSam Parker initializeHardwareLoopsPass(Registry); 4980fc0762SOwen Anderson initializeIfConverterPass(Registry); 506e670529SMatthias Braun initializeImplicitNullChecksPass(Registry); 51c58f2166SChandler Carruth initializeIndirectBrExpandPassPass(Registry); 52fef3036dSMartin Elshuber initializeInterleavedLoadCombinePass(Registry); 53330a1255SMatthew Simpson initializeInterleavedAccessPass(Registry); 54f9270214SYuanfang Chen initializeJMCInstrumenterPass(Registry); 556e670529SMatthias Braun initializeLiveDebugValuesPass(Registry); 56d4900a64SJakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 5780fc0762SOwen Anderson initializeLiveIntervalsPass(Registry); 586b737ddcSDehao Chen initializeLiveRangeShrinkPass(Registry); 5980fc0762SOwen Anderson initializeLiveStacksPass(Registry); 6080fc0762SOwen Anderson initializeLiveVariablesPass(Registry); 611fa5bcbeSAndrew Trick initializeLocalStackSlotPassPass(Registry); 6264902d33SJulian Lettner initializeLowerGlobalDtorsLegacyPassPass(Registry); 63be0a0506SReid Kleckner initializeLowerIntrinsicsPass(Registry); 64bf113849SRong Xu initializeMIRAddFSDiscriminatorsPass(Registry); 65bde0806dSMatthias Braun initializeMIRCanonicalizerPass(Registry); 66dc97ca9fSPuyan Lotfi initializeMIRNamerPass(Registry); 67bf113849SRong Xu initializeMIRProfileLoaderPassPass(Registry); 68875ebd5fSJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 6910281425SChandler Carruth initializeMachineBlockPlacementPass(Registry); 70ae4e800cSChandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 71301ed0c3SChandler Carruth initializeMachineCSEPass(Registry); 72be0a0506SReid Kleckner initializeMachineCombinerPass(Registry); 73be0a0506SReid Kleckner initializeMachineCopyPropagationPass(Registry); 741d0244aeSSameer Sahasrabuddhe initializeMachineCycleInfoPrinterPassPass(Registry); 751d0244aeSSameer Sahasrabuddhe initializeMachineCycleInfoWrapperPassPass(Registry); 7680fc0762SOwen Anderson initializeMachineDominatorTreePass(Registry); 77be0a0506SReid Kleckner initializeMachineFunctionPrinterPassPass(Registry); 7880fc0762SOwen Anderson initializeMachineLICMPass(Registry); 7980fc0762SOwen Anderson initializeMachineLoopInfoPass(Registry); 80cc382cf7SYuanfang Chen initializeMachineModuleInfoWrapperPassPass(Registry); 81259a0cf3SJustin Bogner initializeMachineOptimizationRemarkEmitterPassPass(Registry); 82596f483aSJessica Paquette initializeMachineOutlinerPass(Registry); 83254f889dSBrendon Cahoon initializeMachinePipelinerPass(Registry); 8493549957SJames Molloy initializeModuloScheduleTestPass(Registry); 85be0a0506SReid Kleckner initializeMachinePostDominatorTreePass(Registry); 8643130592SMatthias Braun initializeMachineRegionInfoPassPass(Registry); 871fa5bcbeSAndrew Trick initializeMachineSchedulerPass(Registry); 8880fc0762SOwen Anderson initializeMachineSinkingPass(Registry); 8980fc0762SOwen Anderson initializeMachineVerifierPassPass(Registry); 9080fc0762SOwen Anderson initializeOptimizePHIsPass(Registry); 91be0a0506SReid Kleckner initializePEIPass(Registry); 9280fc0762SOwen Anderson initializePHIEliminationPass(Registry); 936e670529SMatthias Braun initializePatchableFunctionPass(Registry); 9480fc0762SOwen Anderson initializePeepholeOptimizerPass(Registry); 9517080b9bSAndrew Trick initializePostMachineSchedulerPass(Registry); 96ee34680bSTom Stellard initializePostRAHazardRecognizerPass(Registry); 972ecb7ba4SJun Bum Lim initializePostRAMachineSinkingPass(Registry); 981fa5bcbeSAndrew Trick initializePostRASchedulerPass(Registry); 9982d5da5aSMichael Kuperstein initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 10080fc0762SOwen Anderson initializeProcessImplicitDefsPass(Registry); 101ebbaed6dSQuentin Colombet initializeRABasicPass(Registry); 10211e60ff7STom Stellard initializeRAGreedyPass(Registry); 103bde0806dSMatthias Braun initializeRegAllocFastPass(Registry); 1045c1e23b2SMatthias Braun initializeRegUsageInfoCollectorPass(Registry); 1055c1e23b2SMatthias Braun initializeRegUsageInfoPropagationPass(Registry); 106676c405aSRafael Espindola initializeRegisterCoalescerPass(Registry); 107df686842SDjordje Todorovic initializeRemoveRedundantDebugValuesPass(Registry); 108f9acacaaSMatthias Braun initializeRenameIndependentSubregsPass(Registry); 10900d68222SAhmed Bougacha initializeSafeStackLegacyPassPass(Registry); 110*ca7c307dSSotiris Apostolakis initializeSelectOptimizePass(Registry); 1110fdb25cdSStanislav Mekhanoshin initializeShadowStackGCLoweringPass(Registry); 11261b305edSQuentin Colombet initializeShrinkWrapPass(Registry); 1133dabad1aSKazushi (Jam) Marukawa initializeSjLjEHPreparePass(Registry); 11480fc0762SOwen Anderson initializeSlotIndexesPass(Registry); 115301ed0c3SChandler Carruth initializeStackColoringPass(Registry); 116be0a0506SReid Kleckner initializeStackMapLivenessPass(Registry); 117be0a0506SReid Kleckner initializeStackProtectorPass(Registry); 11880fc0762SOwen Anderson initializeStackSlotColoringPass(Registry); 119a79b2fc4SDaniel Sanders initializeStripDebugMachineModulePass(Registry); 1203ab9fcb9SMatthias Braun initializeTailDuplicatePass(Registry); 121b7551336SAndrew Trick initializeTargetPassConfigPass(Registry); 12280fc0762SOwen Anderson initializeTwoAddressInstructionPassPass(Registry); 123bc76dadbSSam Parker initializeTypePromotionPass(Registry); 1241fa5bcbeSAndrew Trick initializeUnpackMachineBundlesPass(Registry); 12590d195a5SWei Mi initializeUnreachableBlockElimLegacyPassPass(Registry); 12680fc0762SOwen Anderson initializeUnreachableMachineBlockElimPass(Registry); 12780fc0762SOwen Anderson initializeVirtRegMapPass(Registry); 1281224312fSJakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 12999d60e0dSHeejin Ahn initializeWasmEHPreparePass(Registry); 130be0a0506SReid Kleckner initializeWinEHPreparePass(Registry); 1316e670529SMatthias Braun initializeXRayInstrumentationPass(Registry); 13280fc0762SOwen Anderson } 13380fc0762SOwen Anderson LLVMInitializeCodeGen(LLVMPassRegistryRef R)13480fc0762SOwen Andersonvoid LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 13580fc0762SOwen Anderson initializeCodeGen(*unwrap(R)); 13680fc0762SOwen Anderson } 137