180fc0762SOwen Anderson //===-- CodeGen.cpp -------------------------------------------------------===// 280fc0762SOwen Anderson // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler 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. 2180fc0762SOwen Anderson void llvm::initializeCodeGen(PassRegistry &Registry) { 2259c23cd9SRobin Morisset initializeAtomicExpandPass(Registry); 2358648e4eSAndrew Trick initializeBranchFolderPassPass(Registry); 2436919a4fSMatt Arsenault initializeBranchRelaxationPass(Registry); 25e2bfcd63SPetar Jovanovic initializeCFIInstrInserterPass(Registry); 26a349084aSQuentin Colombet initializeCodeGenPreparePass(Registry); 2780fc0762SOwen Anderson initializeDeadMachineInstructionElimPass(Registry); 28fbe85ae1SMatthias Braun initializeDetectDeadLanesPass(Registry); 29be0a0506SReid Kleckner initializeDwarfEHPreparePass(Registry); 30f8a63a15SJakob Stoklund Olesen initializeEarlyIfConverterPass(Registry); 314a7c8e7aSMatthias Braun initializeEarlyMachineLICMPass(Registry); 323ab9fcb9SMatthias Braun initializeEarlyTailDuplicatePass(Registry); 33301ed0c3SChandler Carruth initializeExpandISelPseudosPass(Registry); 34063bed9bSClement Courbet initializeExpandMemCmpPassPass(Registry); 35be0a0506SReid Kleckner initializeExpandPostRAPass(Registry); 36a7c041d1SNirav Dave initializeFEntryInserterPass(Registry); 376e670529SMatthias Braun initializeFinalizeMachineBundlesPass(Registry); 3897890230SDavid Majnemer initializeFuncletLayoutPass(Registry); 391fa5bcbeSAndrew Trick initializeGCMachineCodeAnalysisPass(Registry); 4080fc0762SOwen Anderson initializeGCModuleInfoPass(Registry); 4180fc0762SOwen Anderson initializeIfConverterPass(Registry); 426e670529SMatthias Braun initializeImplicitNullChecksPass(Registry); 43c58f2166SChandler Carruth initializeIndirectBrExpandPassPass(Registry); 44fef3036dSMartin Elshuber initializeInterleavedLoadCombinePass(Registry); 45330a1255SMatthew Simpson initializeInterleavedAccessPass(Registry); 466e670529SMatthias Braun initializeLiveDebugValuesPass(Registry); 47d4900a64SJakob Stoklund Olesen initializeLiveDebugVariablesPass(Registry); 4880fc0762SOwen Anderson initializeLiveIntervalsPass(Registry); 496b737ddcSDehao Chen initializeLiveRangeShrinkPass(Registry); 5080fc0762SOwen Anderson initializeLiveStacksPass(Registry); 5180fc0762SOwen Anderson initializeLiveVariablesPass(Registry); 521fa5bcbeSAndrew Trick initializeLocalStackSlotPassPass(Registry); 53be0a0506SReid Kleckner initializeLowerIntrinsicsPass(Registry); 54bde0806dSMatthias Braun initializeMIRCanonicalizerPass(Registry); 55875ebd5fSJakub Staszak initializeMachineBlockFrequencyInfoPass(Registry); 5610281425SChandler Carruth initializeMachineBlockPlacementPass(Registry); 57ae4e800cSChandler Carruth initializeMachineBlockPlacementStatsPass(Registry); 58301ed0c3SChandler Carruth initializeMachineCSEPass(Registry); 59be0a0506SReid Kleckner initializeMachineCombinerPass(Registry); 60be0a0506SReid Kleckner initializeMachineCopyPropagationPass(Registry); 6180fc0762SOwen Anderson initializeMachineDominatorTreePass(Registry); 62be0a0506SReid Kleckner initializeMachineFunctionPrinterPassPass(Registry); 6380fc0762SOwen Anderson initializeMachineLICMPass(Registry); 6480fc0762SOwen Anderson initializeMachineLoopInfoPass(Registry); 6580fc0762SOwen Anderson initializeMachineModuleInfoPass(Registry); 66259a0cf3SJustin Bogner initializeMachineOptimizationRemarkEmitterPassPass(Registry); 67596f483aSJessica Paquette initializeMachineOutlinerPass(Registry); 68254f889dSBrendon Cahoon initializeMachinePipelinerPass(Registry); 69be0a0506SReid Kleckner initializeMachinePostDominatorTreePass(Registry); 7043130592SMatthias Braun initializeMachineRegionInfoPassPass(Registry); 711fa5bcbeSAndrew Trick initializeMachineSchedulerPass(Registry); 7280fc0762SOwen Anderson initializeMachineSinkingPass(Registry); 7380fc0762SOwen Anderson initializeMachineVerifierPassPass(Registry); 7480fc0762SOwen Anderson initializeOptimizePHIsPass(Registry); 75be0a0506SReid Kleckner initializePEIPass(Registry); 7680fc0762SOwen Anderson initializePHIEliminationPass(Registry); 776e670529SMatthias Braun initializePatchableFunctionPass(Registry); 7880fc0762SOwen Anderson initializePeepholeOptimizerPass(Registry); 7917080b9bSAndrew Trick initializePostMachineSchedulerPass(Registry); 80ee34680bSTom Stellard initializePostRAHazardRecognizerPass(Registry); 812ecb7ba4SJun Bum Lim initializePostRAMachineSinkingPass(Registry); 821fa5bcbeSAndrew Trick initializePostRASchedulerPass(Registry); 8382d5da5aSMichael Kuperstein initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 8480fc0762SOwen Anderson initializeProcessImplicitDefsPass(Registry); 85ebbaed6dSQuentin Colombet initializeRABasicPass(Registry); 8611e60ff7STom Stellard initializeRAGreedyPass(Registry); 87bde0806dSMatthias Braun initializeRegAllocFastPass(Registry); 885c1e23b2SMatthias Braun initializeRegUsageInfoCollectorPass(Registry); 895c1e23b2SMatthias Braun initializeRegUsageInfoPropagationPass(Registry); 90676c405aSRafael Espindola initializeRegisterCoalescerPass(Registry); 91f9acacaaSMatthias Braun initializeRenameIndependentSubregsPass(Registry); 9200d68222SAhmed Bougacha initializeSafeStackLegacyPassPass(Registry); 93c5490e5aSAyman Musa initializeScalarizeMaskedMemIntrinPass(Registry); 9461b305edSQuentin Colombet initializeShrinkWrapPass(Registry); 9580fc0762SOwen Anderson initializeSlotIndexesPass(Registry); 96301ed0c3SChandler Carruth initializeStackColoringPass(Registry); 97be0a0506SReid Kleckner initializeStackMapLivenessPass(Registry); 98be0a0506SReid Kleckner initializeStackProtectorPass(Registry); 9980fc0762SOwen Anderson initializeStackSlotColoringPass(Registry); 1003ab9fcb9SMatthias Braun initializeTailDuplicatePass(Registry); 101b7551336SAndrew Trick initializeTargetPassConfigPass(Registry); 10280fc0762SOwen Anderson initializeTwoAddressInstructionPassPass(Registry); 1031fa5bcbeSAndrew Trick initializeUnpackMachineBundlesPass(Registry); 10490d195a5SWei Mi initializeUnreachableBlockElimLegacyPassPass(Registry); 10580fc0762SOwen Anderson initializeUnreachableMachineBlockElimPass(Registry); 10680fc0762SOwen Anderson initializeVirtRegMapPass(Registry); 1071224312fSJakob Stoklund Olesen initializeVirtRegRewriterPass(Registry); 10899d60e0dSHeejin Ahn initializeWasmEHPreparePass(Registry); 109be0a0506SReid Kleckner initializeWinEHPreparePass(Registry); 1106e670529SMatthias Braun initializeXRayInstrumentationPass(Registry); 11180fc0762SOwen Anderson } 11280fc0762SOwen Anderson 11380fc0762SOwen Anderson void LLVMInitializeCodeGen(LLVMPassRegistryRef R) { 11480fc0762SOwen Anderson initializeCodeGen(*unwrap(R)); 11580fc0762SOwen Anderson } 116