1 //===-- ObjCARC.h - ObjCARC Scalar Transformations --------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This header file defines prototypes for accessor functions that expose passes
11 // in the ObjCARC Scalar Transformations library.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_TRANSFORMS_OBJCARC_H
16 #define LLVM_TRANSFORMS_OBJCARC_H
17 
18 namespace llvm {
19 
20 class Pass;
21 
22 //===----------------------------------------------------------------------===//
23 //
24 // ObjCARCAPElim - ObjC ARC autorelease pool elimination.
25 //
26 Pass *createObjCARCAPElimPass();
27 
28 //===----------------------------------------------------------------------===//
29 //
30 // ObjCARCExpand - ObjC ARC preliminary simplifications.
31 //
32 Pass *createObjCARCExpandPass();
33 
34 //===----------------------------------------------------------------------===//
35 //
36 // ObjCARCContract - Late ObjC ARC cleanups.
37 //
38 Pass *createObjCARCContractPass();
39 
40 //===----------------------------------------------------------------------===//
41 //
42 // ObjCARCOpt - ObjC ARC optimization.
43 //
44 Pass *createObjCARCOptPass();
45 
46 } // End llvm namespace
47 
48 #endif
49