1//===- PartialInlining.h - Inline parts of functions ------------*- 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 pass performs partial inlining, typically by inlining an if statement
11// that surrounds the body of the function.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_TRANSFORMS_IPO_PARTIALINLINING_H
16#define LLVM_TRANSFORMS_IPO_PARTIALINLINING_H
17
18#include "llvm/IR/PassManager.h"
19
20namespace llvm {
21
22class Module;
23
24/// Pass to remove unused function declarations.
25class PartialInlinerPass : public PassInfoMixin<PartialInlinerPass> {
26public:
27  PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
28};
29
30} // end namespace llvm
31
32#endif // LLVM_TRANSFORMS_IPO_PARTIALINLINING_H
33