ObjCARC.cpp revision 355940
1238106Sdes//===-- ObjCARC.cpp -------------------------------------------------------===//
2238106Sdes//
3238106Sdes// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4238106Sdes// See https://llvm.org/LICENSE.txt for license information.
5238106Sdes// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6238106Sdes//
7238106Sdes//===----------------------------------------------------------------------===//
8238106Sdes//
9238106Sdes// This file implements common infrastructure for libLLVMObjCARCOpts.a, which
10238106Sdes// implements several scalar transformations over the LLVM intermediate
11238106Sdes// representation, including the C bindings for that library.
12238106Sdes//
13238106Sdes//===----------------------------------------------------------------------===//
14238106Sdes
15238106Sdes#include "ObjCARC.h"
16238106Sdes#include "llvm-c/Initialization.h"
17238106Sdes#include "llvm/InitializePasses.h"
18238106Sdes
19238106Sdesnamespace llvm {
20238106Sdes  class PassRegistry;
21238106Sdes}
22238106Sdes
23238106Sdesusing namespace llvm;
24269257Sdesusing namespace llvm::objcarc;
25269257Sdes
26269257Sdes/// initializeObjCARCOptsPasses - Initialize all passes linked into the
27269257Sdes/// ObjCARCOpts library.
28269257Sdesvoid llvm::initializeObjCARCOpts(PassRegistry &Registry) {
29269257Sdes  initializeObjCARCAAWrapperPassPass(Registry);
30269257Sdes  initializeObjCARCAPElimPass(Registry);
31269257Sdes  initializeObjCARCExpandPass(Registry);
32269257Sdes  initializeObjCARCContractPass(Registry);
33269257Sdes  initializeObjCARCOptPass(Registry);
34238106Sdes  initializePAEvalPass(Registry);
35238106Sdes}
36238106Sdes
37238106Sdesvoid LLVMInitializeObjCARCOpts(LLVMPassRegistryRef R) {
38238106Sdes  initializeObjCARCOpts(*unwrap(R));
39238106Sdes}
40238106Sdes