diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/PassManagerUtils.h | 36 |
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); + +} |