xref: /llvm-project/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h (revision ed98c1b37661b0795a5e34517941485f0f0688d1)
19775a620SHiroshi Yamauchi //===- ControlHeightReduction.h - Control Height Reduction ------*- C++ -*-===//
29775a620SHiroshi Yamauchi //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
69775a620SHiroshi Yamauchi //
79775a620SHiroshi Yamauchi //===----------------------------------------------------------------------===//
89775a620SHiroshi Yamauchi //
99775a620SHiroshi Yamauchi // This pass merges conditional blocks of code and reduces the number of
109775a620SHiroshi Yamauchi // conditional branches in the hot paths based on profiles.
119775a620SHiroshi Yamauchi //
129775a620SHiroshi Yamauchi //===----------------------------------------------------------------------===//
139775a620SHiroshi Yamauchi 
149775a620SHiroshi Yamauchi #ifndef LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H
159775a620SHiroshi Yamauchi #define LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H
169775a620SHiroshi Yamauchi 
179775a620SHiroshi Yamauchi #include "llvm/IR/PassManager.h"
189775a620SHiroshi Yamauchi 
199775a620SHiroshi Yamauchi namespace llvm {
209775a620SHiroshi Yamauchi 
219775a620SHiroshi Yamauchi class ControlHeightReductionPass :
229775a620SHiroshi Yamauchi       public PassInfoMixin<ControlHeightReductionPass> {
239775a620SHiroshi Yamauchi public:
249775a620SHiroshi Yamauchi   ControlHeightReductionPass();
259775a620SHiroshi Yamauchi   PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
269775a620SHiroshi Yamauchi };
279775a620SHiroshi Yamauchi } // end namespace llvm
289775a620SHiroshi Yamauchi 
299775a620SHiroshi Yamauchi #endif // LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H
30