1218885Sdim//===-- Utils.cpp - TransformUtils Infrastructure -------------------------===// 2218885Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6218885Sdim// 7218885Sdim//===----------------------------------------------------------------------===// 8218885Sdim// 9218885Sdim// This file defines the common initialization infrastructure for the 10218885Sdim// TransformUtils library. 11218885Sdim// 12218885Sdim//===----------------------------------------------------------------------===// 13218885Sdim 14341825Sdim#include "llvm/Transforms/Utils.h" 15321369Sdim#include "llvm-c/Initialization.h" 16341825Sdim#include "llvm-c/Transforms/Utils.h" 17341825Sdim#include "llvm/IR/LegacyPassManager.h" 18218885Sdim#include "llvm/InitializePasses.h" 19251662Sdim#include "llvm/PassRegistry.h" 20218885Sdim 21218885Sdimusing namespace llvm; 22218885Sdim 23218885Sdim/// initializeTransformUtils - Initialize all passes in the TransformUtils 24218885Sdim/// library. 25218885Sdimvoid llvm::initializeTransformUtils(PassRegistry &Registry) { 26309124Sdim initializeAddDiscriminatorsLegacyPassPass(Registry); 27218885Sdim initializeBreakCriticalEdgesPass(Registry); 28344779Sdim initializeCanonicalizeAliasesLegacyPassPass(Registry); 29218885Sdim initializeInstNamerPass(Registry); 30309124Sdim initializeLCSSAWrapperPassPass(Registry); 31314564Sdim initializeLibCallsShrinkWrapLegacyPassPass(Registry); 32218885Sdim initializeLoopSimplifyPass(Registry); 33314564Sdim initializeLowerInvokeLegacyPassPass(Registry); 34218885Sdim initializeLowerSwitchPass(Registry); 35314564Sdim initializeNameAnonGlobalLegacyPassPass(Registry); 36309124Sdim initializePromoteLegacyPassPass(Registry); 37314564Sdim initializeStripNonLineTableDebugInfoPass(Registry); 38218885Sdim initializeUnifyFunctionExitNodesPass(Registry); 39243830Sdim initializeMetaRenamerPass(Registry); 40314564Sdim initializeStripGCRelocatesPass(Registry); 41321369Sdim initializePredicateInfoPrinterLegacyPassPass(Registry); 42360784Sdim initializeInjectTLIMappingsLegacyPass(Registry); 43218885Sdim} 44218885Sdim 45218885Sdim/// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses. 46218885Sdimvoid LLVMInitializeTransformUtils(LLVMPassRegistryRef R) { 47218885Sdim initializeTransformUtils(*unwrap(R)); 48218885Sdim} 49341825Sdim 50341825Sdimvoid LLVMAddLowerSwitchPass(LLVMPassManagerRef PM) { 51341825Sdim unwrap(PM)->add(createLowerSwitchPass()); 52341825Sdim} 53341825Sdim 54341825Sdimvoid LLVMAddPromoteMemoryToRegisterPass(LLVMPassManagerRef PM) { 55341825Sdim unwrap(PM)->add(createPromoteMemoryToRegisterPass()); 56341825Sdim} 57341825Sdim 58353358Sdimvoid LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM) { 59353358Sdim unwrap(PM)->add(createAddDiscriminatorsPass()); 60353358Sdim} 61