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 19 namespace llvm { 20 class PassRegistry; 21 } 22 23 using namespace llvm; 24 using namespace llvm::objcarc; 25 26 /// initializeObjCARCOptsPasses - Initialize all passes linked into the 27 /// ObjCARCOpts library. 28 void llvm::initializeObjCARCOpts(PassRegistry &Registry) { 29 initializeObjCARCAAWrapperPassPass(Registry); 30 initializeObjCARCAPElimPass(Registry); 31 initializeObjCARCExpandPass(Registry); 32 initializeObjCARCContractLegacyPassPass(Registry); 33 initializeObjCARCOptLegacyPassPass(Registry); 34 initializePAEvalPass(Registry); 35 } 36 37 void LLVMInitializeObjCARCOpts(LLVMPassRegistryRef R) { 38 initializeObjCARCOpts(*unwrap(R)); 39 } 40