aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/llvm/PassManagerUtils.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/llvm/PassManagerUtils.h b/include/llvm/PassManagerUtils.h
new file mode 100644
index 0000000000..8d34c358ef
--- /dev/null
+++ b/include/llvm/PassManagerUtils.h
@@ -0,0 +1,36 @@
+//===-- llvm/Support/PassManagerUtils.h -------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file provides interface to pass manager utilities.
+//
+//===----------------------------------------------------------------------===//
+
+namespace llvm {
+
+class FunctionPassManager;
+class PassManager;
+
+/// AddOptimizationPasses - This routine adds optimization passes
+/// based on selected optimization level, OptLevel. This routine is
+/// used by llvm-gcc and other tools.
+///
+/// OptLevel - Optimization Level
+/// EnableIPO - Enables IPO passes. llvm-gcc enables this when
+/// flag_unit_at_a_time is set.
+/// InlinerSelection - 1 : Add function inliner.
+/// - 2 : Add AlwaysInliner.
+/// OptLibCalls - Simplify lib calls, if set.
+/// PruneEH - Add PruneEHPass, if set.
+/// UnrollLoop - Unroll loops, if set.
+void AddOptimizationPasses(FunctionPassManager &FPM, PassManager &MPM,
+ unsigned OptLevel, bool EnableIPO,
+ unsigned InlinerSelection, bool OptLibCalls,
+ bool PruneEH, bool UnrollLoop);
+
+}