CodeGen.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //===-- CodeGen.cpp -------------------------------------------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8. //
  9. // This file implements the common initialization routines for the
  10. // CodeGen library.
  11. //
  12. //===----------------------------------------------------------------------===//
  13. #include "llvm-c/Initialization.h"
  14. #include "llvm/InitializePasses.h"
  15. #include "llvm/PassRegistry.h"
  16. using namespace llvm;
  17. /// initializeCodeGen - Initialize all passes linked into the CodeGen library.
  18. void llvm::initializeCodeGen(PassRegistry &Registry) {
  19. initializeAtomicExpandPass(Registry);
  20. initializeBranchFolderPassPass(Registry);
  21. initializeBranchRelaxationPass(Registry);
  22. initializeCFIInstrInserterPass(Registry);
  23. initializeCodeGenPreparePass(Registry);
  24. initializeDeadMachineInstructionElimPass(Registry);
  25. initializeDetectDeadLanesPass(Registry);
  26. initializeDwarfEHPreparePass(Registry);
  27. initializeEarlyIfConverterPass(Registry);
  28. initializeEarlyMachineLICMPass(Registry);
  29. initializeEarlyTailDuplicatePass(Registry);
  30. initializeExpandMemCmpPassPass(Registry);
  31. initializeExpandPostRAPass(Registry);
  32. initializeFEntryInserterPass(Registry);
  33. initializeFinalizeISelPass(Registry);
  34. initializeFinalizeMachineBundlesPass(Registry);
  35. initializeFuncletLayoutPass(Registry);
  36. initializeGCMachineCodeAnalysisPass(Registry);
  37. initializeGCModuleInfoPass(Registry);
  38. initializeHardwareLoopsPass(Registry);
  39. initializeIfConverterPass(Registry);
  40. initializeImplicitNullChecksPass(Registry);
  41. initializeIndirectBrExpandPassPass(Registry);
  42. initializeInterleavedLoadCombinePass(Registry);
  43. initializeInterleavedAccessPass(Registry);
  44. initializeLiveDebugValuesPass(Registry);
  45. initializeLiveDebugVariablesPass(Registry);
  46. initializeLiveIntervalsPass(Registry);
  47. initializeLiveRangeShrinkPass(Registry);
  48. initializeLiveStacksPass(Registry);
  49. initializeLiveVariablesPass(Registry);
  50. initializeLocalStackSlotPassPass(Registry);
  51. initializeLowerIntrinsicsPass(Registry);
  52. initializeMIRCanonicalizerPass(Registry);
  53. initializeMachineBlockFrequencyInfoPass(Registry);
  54. initializeMachineBlockPlacementPass(Registry);
  55. initializeMachineBlockPlacementStatsPass(Registry);
  56. initializeMachineCSEPass(Registry);
  57. initializeMachineCombinerPass(Registry);
  58. initializeMachineCopyPropagationPass(Registry);
  59. initializeMachineDominatorTreePass(Registry);
  60. initializeMachineFunctionPrinterPassPass(Registry);
  61. initializeMachineLICMPass(Registry);
  62. initializeMachineLoopInfoPass(Registry);
  63. initializeMachineModuleInfoPass(Registry);
  64. initializeMachineOptimizationRemarkEmitterPassPass(Registry);
  65. initializeMachineOutlinerPass(Registry);
  66. initializeMachinePipelinerPass(Registry);
  67. initializeMachinePostDominatorTreePass(Registry);
  68. initializeMachineRegionInfoPassPass(Registry);
  69. initializeMachineSchedulerPass(Registry);
  70. initializeMachineSinkingPass(Registry);
  71. initializeMachineVerifierPassPass(Registry);
  72. initializeOptimizePHIsPass(Registry);
  73. initializePEIPass(Registry);
  74. initializePHIEliminationPass(Registry);
  75. initializePatchableFunctionPass(Registry);
  76. initializePeepholeOptimizerPass(Registry);
  77. initializePostMachineSchedulerPass(Registry);
  78. initializePostRAHazardRecognizerPass(Registry);
  79. initializePostRAMachineSinkingPass(Registry);
  80. initializePostRASchedulerPass(Registry);
  81. initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
  82. initializeProcessImplicitDefsPass(Registry);
  83. initializeRABasicPass(Registry);
  84. initializeRAGreedyPass(Registry);
  85. initializeRegAllocFastPass(Registry);
  86. initializeRegUsageInfoCollectorPass(Registry);
  87. initializeRegUsageInfoPropagationPass(Registry);
  88. initializeRegisterCoalescerPass(Registry);
  89. initializeRenameIndependentSubregsPass(Registry);
  90. initializeSafeStackLegacyPassPass(Registry);
  91. initializeScalarizeMaskedMemIntrinPass(Registry);
  92. initializeShrinkWrapPass(Registry);
  93. initializeSlotIndexesPass(Registry);
  94. initializeStackColoringPass(Registry);
  95. initializeStackMapLivenessPass(Registry);
  96. initializeStackProtectorPass(Registry);
  97. initializeStackSlotColoringPass(Registry);
  98. initializeTailDuplicatePass(Registry);
  99. initializeTargetPassConfigPass(Registry);
  100. initializeTwoAddressInstructionPassPass(Registry);
  101. initializeUnpackMachineBundlesPass(Registry);
  102. initializeUnreachableBlockElimLegacyPassPass(Registry);
  103. initializeUnreachableMachineBlockElimPass(Registry);
  104. initializeVirtRegMapPass(Registry);
  105. initializeVirtRegRewriterPass(Registry);
  106. initializeWasmEHPreparePass(Registry);
  107. initializeWinEHPreparePass(Registry);
  108. initializeXRayInstrumentationPass(Registry);
  109. }
  110. void LLVMInitializeCodeGen(LLVMPassRegistryRef R) {
  111. initializeCodeGen(*unwrap(R));
  112. }