Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:44:42

0001 //===- LowerExpectIntrinsic.h - LowerExpectIntrinsic pass -------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 /// \file
0009 ///
0010 /// The header file for the LowerExpectIntrinsic pass as used by the new pass
0011 /// manager.
0012 ///
0013 //===----------------------------------------------------------------------===//
0014 
0015 #ifndef LLVM_TRANSFORMS_SCALAR_LOWEREXPECTINTRINSIC_H
0016 #define LLVM_TRANSFORMS_SCALAR_LOWEREXPECTINTRINSIC_H
0017 
0018 #include "llvm/IR/PassManager.h"
0019 
0020 namespace llvm {
0021 
0022 class Function;
0023 
0024 struct LowerExpectIntrinsicPass : PassInfoMixin<LowerExpectIntrinsicPass> {
0025   /// Run the pass over the function.
0026   ///
0027   /// This will lower all of the expect intrinsic calls in this function into
0028   /// branch weight metadata. That metadata will subsequently feed the analysis
0029   /// of the probabilities and frequencies of the CFG. After running this pass,
0030   /// no more expect intrinsics remain, allowing the rest of the optimizer to
0031   /// ignore them.
0032   PreservedAnalyses run(Function &F, FunctionAnalysisManager &);
0033 };
0034 
0035 }
0036 
0037 #endif