blob: 2f114c75e2e2ac0e96f1b621adbbc482ade9c668 [file] [log] [blame]
Andrew Scull5e1ddfa2018-08-14 10:06:54 +01001//===-- ObjCARC.h - ObjCARC Scalar Transformations --------------*- C++ -*-===//
2//
Andrew Walbran16937d02019-10-22 13:54:20 +01003// 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
Andrew Scull5e1ddfa2018-08-14 10:06:54 +01006//
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
17namespace llvm {
18
19class Pass;
20
21//===----------------------------------------------------------------------===//
22//
23// ObjCARCAPElim - ObjC ARC autorelease pool elimination.
24//
25Pass *createObjCARCAPElimPass();
26
27//===----------------------------------------------------------------------===//
28//
29// ObjCARCExpand - ObjC ARC preliminary simplifications.
30//
31Pass *createObjCARCExpandPass();
32
33//===----------------------------------------------------------------------===//
34//
35// ObjCARCContract - Late ObjC ARC cleanups.
36//
37Pass *createObjCARCContractPass();
38
39//===----------------------------------------------------------------------===//
40//
41// ObjCARCOpt - ObjC ARC optimization.
42//
43Pass *createObjCARCOptPass();
44
45} // End llvm namespace
46
47#endif