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