Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //===- MergeFunctions.h - Merge Identical Functions -------------*- 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 //
0009 // This pass transforms simple global variables that never have their address
0010 // taken.  If obviously true, it marks read/write globals as constant, deletes
0011 // variables only stored to, etc.
0012 //
0013 //===----------------------------------------------------------------------===//
0014 
0015 #ifndef LLVM_TRANSFORMS_IPO_MERGEFUNCTIONS_H
0016 #define LLVM_TRANSFORMS_IPO_MERGEFUNCTIONS_H
0017 
0018 #include "llvm/IR/PassManager.h"
0019 
0020 namespace llvm {
0021 
0022 class Module;
0023 class Function;
0024 
0025 /// Merge identical functions.
0026 class MergeFunctionsPass : public PassInfoMixin<MergeFunctionsPass> {
0027 public:
0028   PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
0029 
0030   static bool runOnModule(Module &M);
0031   static DenseMap<Function *, Function *>
0032   runOnFunctions(ArrayRef<Function *> F);
0033 };
0034 
0035 } // end namespace llvm
0036 
0037 #endif // LLVM_TRANSFORMS_IPO_MERGEFUNCTIONS_H