LLVM 22.0.0git
IPO.h
Go to the documentation of this file.
1//===- llvm/Transforms/IPO.h - Interprocedural 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 IPO transformations library.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TRANSFORMS_IPO_H
15#define LLVM_TRANSFORMS_IPO_H
16
18
19namespace llvm {
20
21class ModulePass;
22class Pass;
23class raw_ostream;
24
25//===----------------------------------------------------------------------===//
26/// createDeadArgEliminationPass - This pass removes arguments from functions
27/// which are not used by the body of the function.
28///
30
31/// DeadArgHacking pass - Same as DAE, but delete arguments of external
32/// functions as well. This is definitely not safe, and should only be used by
33/// bugpoint.
35
36//===----------------------------------------------------------------------===//
37//
38/// createLoopExtractorPass - This pass extracts all natural loops from the
39/// program into a function if it can.
40///
42
43/// createSingleLoopExtractorPass - This pass extracts one natural loop from the
44/// program into a function if it can. This is used by bugpoint.
45///
47
48//===----------------------------------------------------------------------===//
49/// createBarrierNoopPass - This pass is purely a module pass barrier in a pass
50/// manager.
52
53/// What to do with the summary when running passes that operate on it.
55 None, ///< Do nothing.
56 Import, ///< Import information from summary.
57 Export, ///< Export information to summary.
58};
59
60} // End llvm namespace
61
62#endif
#define LLVM_ABI
Definition Compiler.h:213
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Definition Pass.h:255
Pass interface - Implemented by all 'passes'.
Definition Pass.h:99
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition raw_ostream.h:53
This is an optimization pass for GlobalISel generic memory operations.
PassSummaryAction
What to do with the summary when running passes that operate on it.
Definition IPO.h:54
@ Export
Export information to summary.
Definition IPO.h:57
@ Import
Import information from summary.
Definition IPO.h:56
LLVM_ABI Pass * createLoopExtractorPass()
createLoopExtractorPass - This pass extracts all natural loops from the program into a function if it...
LLVM_ABI Pass * createSingleLoopExtractorPass()
createSingleLoopExtractorPass - This pass extracts one natural loop from the program into a function ...
LLVM_ABI ModulePass * createBarrierNoopPass()
createBarrierNoopPass - This pass is purely a module pass barrier in a pass manager.
LLVM_ABI ModulePass * createDeadArgEliminationPass()
createDeadArgEliminationPass - This pass removes arguments from functions which are not used by the b...
LLVM_ABI ModulePass * createDeadArgHackingPass()
DeadArgHacking pass - Same as DAE, but delete arguments of external functions as well.