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
18namespace llvm {
19
20class Pass;
21
22//===----------------------------------------------------------------------===//
23//
24// ObjCARCAPElim - ObjC ARC autorelease pool elimination.
25//
26Pass *createObjCARCAPElimPass();
27
28//===----------------------------------------------------------------------===//
29//
30// ObjCARCExpand - ObjC ARC preliminary simplifications.
31//
32Pass *createObjCARCExpandPass();
33
34//===----------------------------------------------------------------------===//
35//
36// ObjCARCContract - Late ObjC ARC cleanups.
37//
38Pass *createObjCARCContractPass();
39
40//===----------------------------------------------------------------------===//
41//
42// ObjCARCOpt - ObjC ARC optimization.
43//
44Pass *createObjCARCOptPass();
45
46} // End llvm namespace
47
48#endif
49