1//===-- ObjCARC.cpp -------------------------------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file implements common infrastructure for libLLVMObjCARCOpts.a, which 10// implements several scalar transformations over the LLVM intermediate 11// representation, including the C bindings for that library. 12// 13//===----------------------------------------------------------------------===// 14 15#include "ObjCARC.h" 16#include "llvm-c/Initialization.h" 17#include "llvm/InitializePasses.h" 18 19namespace llvm { 20 class PassRegistry; 21} 22 23using namespace llvm; 24using namespace llvm::objcarc; 25 26/// initializeObjCARCOptsPasses - Initialize all passes linked into the 27/// ObjCARCOpts library. 28void llvm::initializeObjCARCOpts(PassRegistry &Registry) { 29 initializeObjCARCAAWrapperPassPass(Registry); 30 initializeObjCARCAPElimPass(Registry); 31 initializeObjCARCExpandPass(Registry); 32 initializeObjCARCContractPass(Registry); 33 initializeObjCARCOptPass(Registry); 34 initializePAEvalPass(Registry); 35} 36 37void LLVMInitializeObjCARCOpts(LLVMPassRegistryRef R) { 38 initializeObjCARCOpts(*unwrap(R)); 39} 40