1//===- ControlHeightReduction.h - Control Height Reduction ------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This pass merges conditional blocks of code and reduces the number of 10// conditional branches in the hot paths based on profiles. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H 15#define LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H 16 17#include "llvm/Analysis/LoopInfo.h" 18#include "llvm/IR/PassManager.h" 19 20namespace llvm { 21 22class ControlHeightReductionPass : 23 public PassInfoMixin<ControlHeightReductionPass> { 24public: 25 ControlHeightReductionPass(); 26 PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM); 27}; 28} // end namespace llvm 29 30#endif // LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H 31