1 //===-- ObjCARC.h - ObjCARC Scalar Transformations --------------*- C++ -*-===// 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 header file defines prototypes for accessor functions that expose passes 10 // in the ObjCARC Scalar Transformations library. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_TRANSFORMS_OBJCARC_H 15 #define LLVM_TRANSFORMS_OBJCARC_H 16 17 namespace llvm { 18 19 class Pass; 20 21 //===----------------------------------------------------------------------===// 22 // 23 // ObjCARCAPElim - ObjC ARC autorelease pool elimination. 24 // 25 Pass *createObjCARCAPElimPass(); 26 27 //===----------------------------------------------------------------------===// 28 // 29 // ObjCARCExpand - ObjC ARC preliminary simplifications. 30 // 31 Pass *createObjCARCExpandPass(); 32 33 //===----------------------------------------------------------------------===// 34 // 35 // ObjCARCContract - Late ObjC ARC cleanups. 36 // 37 Pass *createObjCARCContractPass(); 38 39 //===----------------------------------------------------------------------===// 40 // 41 // ObjCARCOpt - ObjC ARC optimization. 42 // 43 Pass *createObjCARCOptPass(); 44 45 } // End llvm namespace 46 47 #endif 48