1cf099d11SDimitry Andric //===-- CodeGen.cpp -------------------------------------------------------===// 2cf099d11SDimitry Andric // 3e6d15924SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e6d15924SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5e6d15924SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6cf099d11SDimitry Andric // 7cf099d11SDimitry Andric //===----------------------------------------------------------------------===// 8cf099d11SDimitry Andric // 9cf099d11SDimitry Andric // This file implements the common initialization routines for the 10cf099d11SDimitry Andric // CodeGen library. 11cf099d11SDimitry Andric // 12cf099d11SDimitry Andric //===----------------------------------------------------------------------===// 13cf099d11SDimitry Andric 147ab83427SDimitry Andric #include "llvm/InitializePasses.h" 155ca98fd9SDimitry Andric #include "llvm/PassRegistry.h" 16cf099d11SDimitry Andric 17cf099d11SDimitry Andric using namespace llvm; 18cf099d11SDimitry Andric 19cf099d11SDimitry Andric /// initializeCodeGen - Initialize all passes linked into the CodeGen library. initializeCodeGen(PassRegistry & Registry)20cf099d11SDimitry Andricvoid llvm::initializeCodeGen(PassRegistry &Registry) { 21e3b55780SDimitry Andric initializeAssignmentTrackingAnalysisPass(Registry); 22ac9a064cSDimitry Andric initializeAtomicExpandLegacyPass(Registry); 23b1c73532SDimitry Andric initializeBasicBlockPathCloningPass(Registry); 24b60736ecSDimitry Andric initializeBasicBlockSectionsPass(Registry); 2563faed5bSDimitry Andric initializeBranchFolderPassPass(Registry); 26b915e9e0SDimitry Andric initializeBranchRelaxationPass(Registry); 277fa27ce4SDimitry Andric initializeBreakFalseDepsPass(Registry); 287fa27ce4SDimitry Andric initializeCallBrPreparePass(Registry); 29706b4fc4SDimitry Andric initializeCFGuardLongjmpPass(Registry); 30145449b1SDimitry Andric initializeCFIFixupPass(Registry); 31eb11fae6SDimitry Andric initializeCFIInstrInserterPass(Registry); 32b60736ecSDimitry Andric initializeCheckDebugMachineModulePass(Registry); 33aca2e42cSDimitry Andric initializeCodeGenPrepareLegacyPassPass(Registry); 34cf099d11SDimitry Andric initializeDeadMachineInstructionElimPass(Registry); 35cfca06d7SDimitry Andric initializeDebugifyMachineModulePass(Registry); 3601095a5dSDimitry Andric initializeDetectDeadLanesPass(Registry); 37b60736ecSDimitry Andric initializeDwarfEHPrepareLegacyPassPass(Registry); 3858b69754SDimitry Andric initializeEarlyIfConverterPass(Registry); 391d5ae102SDimitry Andric initializeEarlyIfPredicatorPass(Registry); 40eb11fae6SDimitry Andric initializeEarlyMachineLICMPass(Registry); 41eb11fae6SDimitry Andric initializeEarlyTailDuplicatePass(Registry); 42e3b55780SDimitry Andric initializeExpandLargeDivRemLegacyPassPass(Registry); 43e3b55780SDimitry Andric initializeExpandLargeFpConvertLegacyPassPass(Registry); 44312c0ed1SDimitry Andric initializeExpandMemCmpLegacyPassPass(Registry); 455a5ac124SDimitry Andric initializeExpandPostRAPass(Registry); 4671d5a254SDimitry Andric initializeFEntryInserterPass(Registry); 47e6d15924SDimitry Andric initializeFinalizeISelPass(Registry); 4863faed5bSDimitry Andric initializeFinalizeMachineBundlesPass(Registry); 49cfca06d7SDimitry Andric initializeFixupStatepointCallerSavedPass(Registry); 50dd58ef01SDimitry Andric initializeFuncletLayoutPass(Registry); 5163faed5bSDimitry Andric initializeGCMachineCodeAnalysisPass(Registry); 52cf099d11SDimitry Andric initializeGCModuleInfoPass(Registry); 537fa27ce4SDimitry Andric initializeHardwareLoopsLegacyPass(Registry); 54cf099d11SDimitry Andric initializeIfConverterPass(Registry); 5571d5a254SDimitry Andric initializeImplicitNullChecksPass(Registry); 56312c0ed1SDimitry Andric initializeIndirectBrExpandLegacyPassPass(Registry); 57ac9a064cSDimitry Andric initializeInitUndefPass(Registry); 58d8e91e46SDimitry Andric initializeInterleavedLoadCombinePass(Registry); 5901095a5dSDimitry Andric initializeInterleavedAccessPass(Registry); 60145449b1SDimitry Andric initializeJMCInstrumenterPass(Registry); 6171d5a254SDimitry Andric initializeLiveDebugValuesPass(Registry); 62cf099d11SDimitry Andric initializeLiveDebugVariablesPass(Registry); 63ac9a064cSDimitry Andric initializeLiveIntervalsWrapperPassPass(Registry); 64f382538dSDimitry Andric initializeLiveRangeShrinkPass(Registry); 65cf099d11SDimitry Andric initializeLiveStacksPass(Registry); 66ac9a064cSDimitry Andric initializeLiveVariablesWrapperPassPass(Registry); 6763faed5bSDimitry Andric initializeLocalStackSlotPassPass(Registry); 68145449b1SDimitry Andric initializeLowerGlobalDtorsLegacyPassPass(Registry); 695a5ac124SDimitry Andric initializeLowerIntrinsicsPass(Registry); 70f65dcba8SDimitry Andric initializeMIRAddFSDiscriminatorsPass(Registry); 71eb11fae6SDimitry Andric initializeMIRCanonicalizerPass(Registry); 721d5ae102SDimitry Andric initializeMIRNamerPass(Registry); 73f65dcba8SDimitry Andric initializeMIRProfileLoaderPassPass(Registry); 74ac9a064cSDimitry Andric initializeMachineBlockFrequencyInfoWrapperPassPass(Registry); 7563faed5bSDimitry Andric initializeMachineBlockPlacementPass(Registry); 7663faed5bSDimitry Andric initializeMachineBlockPlacementStatsPass(Registry); 77e3b55780SDimitry Andric initializeMachineCFGPrinterPass(Registry); 78cf099d11SDimitry Andric initializeMachineCSEPass(Registry); 795a5ac124SDimitry Andric initializeMachineCombinerPass(Registry); 805a5ac124SDimitry Andric initializeMachineCopyPropagationPass(Registry); 8177fc4c14SDimitry Andric initializeMachineCycleInfoPrinterPassPass(Registry); 8277fc4c14SDimitry Andric initializeMachineCycleInfoWrapperPassPass(Registry); 83ac9a064cSDimitry Andric initializeMachineDominatorTreeWrapperPassPass(Registry); 845a5ac124SDimitry Andric initializeMachineFunctionPrinterPassPass(Registry); 85e3b55780SDimitry Andric initializeMachineLateInstrsCleanupPass(Registry); 86cf099d11SDimitry Andric initializeMachineLICMPass(Registry); 87ac9a064cSDimitry Andric initializeMachineLoopInfoWrapperPassPass(Registry); 881d5ae102SDimitry Andric initializeMachineModuleInfoWrapperPassPass(Registry); 8971d5a254SDimitry Andric initializeMachineOptimizationRemarkEmitterPassPass(Registry); 9071d5a254SDimitry Andric initializeMachineOutlinerPass(Registry); 91b915e9e0SDimitry Andric initializeMachinePipelinerPass(Registry); 92e3b55780SDimitry Andric initializeMachineSanitizerBinaryMetadataPass(Registry); 931d5ae102SDimitry Andric initializeModuloScheduleTestPass(Registry); 94ac9a064cSDimitry Andric initializeMachinePostDominatorTreeWrapperPassPass(Registry); 9571d5a254SDimitry Andric initializeMachineRegionInfoPassPass(Registry); 9663faed5bSDimitry Andric initializeMachineSchedulerPass(Registry); 97cf099d11SDimitry Andric initializeMachineSinkingPass(Registry); 98e3b55780SDimitry Andric initializeMachineUniformityAnalysisPassPass(Registry); 99e3b55780SDimitry Andric initializeMachineUniformityInfoPrinterPassPass(Registry); 100ac9a064cSDimitry Andric initializeMachineVerifierLegacyPassPass(Registry); 101e3b55780SDimitry Andric initializeObjCARCContractLegacyPassPass(Registry); 102cf099d11SDimitry Andric initializeOptimizePHIsPass(Registry); 1035a5ac124SDimitry Andric initializePEIPass(Registry); 104cf099d11SDimitry Andric initializePHIEliminationPass(Registry); 10571d5a254SDimitry Andric initializePatchableFunctionPass(Registry); 106cf099d11SDimitry Andric initializePeepholeOptimizerPass(Registry); 1075ca98fd9SDimitry Andric initializePostMachineSchedulerPass(Registry); 10801095a5dSDimitry Andric initializePostRAHazardRecognizerPass(Registry); 109eb11fae6SDimitry Andric initializePostRAMachineSinkingPass(Registry); 11063faed5bSDimitry Andric initializePostRASchedulerPass(Registry); 11101095a5dSDimitry Andric initializePreISelIntrinsicLoweringLegacyPassPass(Registry); 112cf099d11SDimitry Andric initializeProcessImplicitDefsPass(Registry); 113d288ef4cSDimitry Andric initializeRABasicPass(Registry); 114b915e9e0SDimitry Andric initializeRAGreedyPass(Registry); 115eb11fae6SDimitry Andric initializeRegAllocFastPass(Registry); 116eb11fae6SDimitry Andric initializeRegUsageInfoCollectorPass(Registry); 117eb11fae6SDimitry Andric initializeRegUsageInfoPropagationPass(Registry); 118411bd29eSDimitry Andric initializeRegisterCoalescerPass(Registry); 119344a3780SDimitry Andric initializeRemoveRedundantDebugValuesPass(Registry); 12001095a5dSDimitry Andric initializeRenameIndependentSubregsPass(Registry); 1216b3f41edSDimitry Andric initializeSafeStackLegacyPassPass(Registry); 122145449b1SDimitry Andric initializeSelectOptimizePass(Registry); 123344a3780SDimitry Andric initializeShadowStackGCLoweringPass(Registry); 1245a5ac124SDimitry Andric initializeShrinkWrapPass(Registry); 125cfca06d7SDimitry Andric initializeSjLjEHPreparePass(Registry); 126ac9a064cSDimitry Andric initializeSlotIndexesWrapperPassPass(Registry); 127522600a2SDimitry Andric initializeStackColoringPass(Registry); 128e3b55780SDimitry Andric initializeStackFrameLayoutAnalysisPassPass(Registry); 1295a5ac124SDimitry Andric initializeStackMapLivenessPass(Registry); 1305a5ac124SDimitry Andric initializeStackProtectorPass(Registry); 131cf099d11SDimitry Andric initializeStackSlotColoringPass(Registry); 132cfca06d7SDimitry Andric initializeStripDebugMachineModulePass(Registry); 133eb11fae6SDimitry Andric initializeTailDuplicatePass(Registry); 13463faed5bSDimitry Andric initializeTargetPassConfigPass(Registry); 135ac9a064cSDimitry Andric initializeTwoAddressInstructionLegacyPassPass(Registry); 136e3b55780SDimitry Andric initializeTypePromotionLegacyPass(Registry); 13763faed5bSDimitry Andric initializeUnpackMachineBundlesPass(Registry); 13801095a5dSDimitry Andric initializeUnreachableBlockElimLegacyPassPass(Registry); 139cf099d11SDimitry Andric initializeUnreachableMachineBlockElimPass(Registry); 140cf099d11SDimitry Andric initializeVirtRegMapPass(Registry); 14158b69754SDimitry Andric initializeVirtRegRewriterPass(Registry); 142eb11fae6SDimitry Andric initializeWasmEHPreparePass(Registry); 1435a5ac124SDimitry Andric initializeWinEHPreparePass(Registry); 14471d5a254SDimitry Andric initializeXRayInstrumentationPass(Registry); 145cf099d11SDimitry Andric } 146