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