LLVM 17.0.0git
ObjCARC.h
Go to the documentation of this file.
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#include "llvm/IR/PassManager.h"
18
19namespace llvm {
20
21class Pass;
22
23//===----------------------------------------------------------------------===//
24//
25// ObjCARCAPElim - ObjC ARC autorelease pool elimination.
26//
28
29//===----------------------------------------------------------------------===//
30//
31// ObjCARCExpand - ObjC ARC preliminary simplifications.
32//
34
35//===----------------------------------------------------------------------===//
36//
37// ObjCARCContract - Late ObjC ARC cleanups.
38//
40
41//===----------------------------------------------------------------------===//
42//
43// ObjCARCOpt - ObjC ARC optimization.
44//
46
47struct ObjCARCOptPass : public PassInfoMixin<ObjCARCOptPass> {
49};
50
51struct ObjCARCContractPass : public PassInfoMixin<ObjCARCContractPass> {
53};
54
55struct ObjCARCAPElimPass : public PassInfoMixin<ObjCARCAPElimPass> {
57};
58
59struct ObjCARCExpandPass : public PassInfoMixin<ObjCARCExpandPass> {
61};
62
63struct PAEvalPass : public PassInfoMixin<PAEvalPass> {
65};
66
67} // End llvm namespace
68
69#endif
print lazy value Lazy Value Info Printer Pass
#define F(x, y, z)
Definition: MD5.cpp:55
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:620
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:65
Pass interface - Implemented by all 'passes'.
Definition: Pass.h:94
A set of analyses that are preserved following a run of a transformation pass.
Definition: PassManager.h:152
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
Pass * createObjCARCAPElimPass()
Pass * createObjCARCExpandPass()
Pass * createObjCARCOptPass()
Pass * createObjCARCContractPass()
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &M, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:371