10b57cec5SDimitry Andric //===-- Utils.cpp - TransformUtils Infrastructure -------------------------===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric // 90b57cec5SDimitry Andric // This file defines the common initialization infrastructure for the 100b57cec5SDimitry Andric // TransformUtils library. 110b57cec5SDimitry Andric // 120b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 130b57cec5SDimitry Andric 140b57cec5SDimitry Andric #include "llvm/Transforms/Utils.h" 150b57cec5SDimitry Andric #include "llvm-c/Initialization.h" 160b57cec5SDimitry Andric #include "llvm-c/Transforms/Utils.h" 170b57cec5SDimitry Andric #include "llvm/IR/LegacyPassManager.h" 180b57cec5SDimitry Andric #include "llvm/InitializePasses.h" 190b57cec5SDimitry Andric #include "llvm/PassRegistry.h" 200b57cec5SDimitry Andric 210b57cec5SDimitry Andric using namespace llvm; 220b57cec5SDimitry Andric 230b57cec5SDimitry Andric /// initializeTransformUtils - Initialize all passes in the TransformUtils 240b57cec5SDimitry Andric /// library. initializeTransformUtils(PassRegistry & Registry)250b57cec5SDimitry Andricvoid llvm::initializeTransformUtils(PassRegistry &Registry) { 260b57cec5SDimitry Andric initializeAddDiscriminatorsLegacyPassPass(Registry); 275ffd83dbSDimitry Andric initializeAssumeSimplifyPassLegacyPassPass(Registry); 285ffd83dbSDimitry Andric initializeAssumeBuilderPassLegacyPassPass(Registry); 290b57cec5SDimitry Andric initializeBreakCriticalEdgesPass(Registry); 300b57cec5SDimitry Andric initializeCanonicalizeAliasesLegacyPassPass(Registry); 315ffd83dbSDimitry Andric initializeCanonicalizeFreezeInLoopsPass(Registry); 320b57cec5SDimitry Andric initializeInstNamerPass(Registry); 330b57cec5SDimitry Andric initializeLCSSAWrapperPassPass(Registry); 340b57cec5SDimitry Andric initializeLibCallsShrinkWrapLegacyPassPass(Registry); 350b57cec5SDimitry Andric initializeLoopSimplifyPass(Registry); 360b57cec5SDimitry Andric initializeLowerInvokeLegacyPassPass(Registry); 37*af732203SDimitry Andric initializeLowerSwitchLegacyPassPass(Registry); 380b57cec5SDimitry Andric initializeNameAnonGlobalLegacyPassPass(Registry); 390b57cec5SDimitry Andric initializePromoteLegacyPassPass(Registry); 40*af732203SDimitry Andric initializeStripNonLineTableDebugLegacyPassPass(Registry); 41*af732203SDimitry Andric initializeUnifyFunctionExitNodesLegacyPassPass(Registry); 420b57cec5SDimitry Andric initializeMetaRenamerPass(Registry); 43*af732203SDimitry Andric initializeStripGCRelocatesLegacyPass(Registry); 440b57cec5SDimitry Andric initializePredicateInfoPrinterLegacyPassPass(Registry); 45480093f4SDimitry Andric initializeInjectTLIMappingsLegacyPass(Registry); 465ffd83dbSDimitry Andric initializeFixIrreduciblePass(Registry); 47*af732203SDimitry Andric initializeUnifyLoopExitsLegacyPassPass(Registry); 480b57cec5SDimitry Andric } 490b57cec5SDimitry Andric 500b57cec5SDimitry Andric /// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses. LLVMInitializeTransformUtils(LLVMPassRegistryRef R)510b57cec5SDimitry Andricvoid LLVMInitializeTransformUtils(LLVMPassRegistryRef R) { 520b57cec5SDimitry Andric initializeTransformUtils(*unwrap(R)); 530b57cec5SDimitry Andric } 540b57cec5SDimitry Andric LLVMAddLowerSwitchPass(LLVMPassManagerRef PM)550b57cec5SDimitry Andricvoid LLVMAddLowerSwitchPass(LLVMPassManagerRef PM) { 560b57cec5SDimitry Andric unwrap(PM)->add(createLowerSwitchPass()); 570b57cec5SDimitry Andric } 580b57cec5SDimitry Andric LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM)590b57cec5SDimitry Andricvoid LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 600b57cec5SDimitry Andric unwrap(PM)->add(createPromoteMemoryToRegisterPass()); 610b57cec5SDimitry Andric } 620b57cec5SDimitry Andric LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM)630b57cec5SDimitry Andricvoid LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM) { 640b57cec5SDimitry Andric unwrap(PM)->add(createAddDiscriminatorsPass()); 650b57cec5SDimitry Andric } 66