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