| 
    LLVM 22.0.0git
    
   | 
 
The core GVN pass object. More...
#include "llvm/Transforms/Scalar/GVN.h"
Classes | |
| struct | Expression | 
| class | ValueTable | 
| This class holds the mapping between values and value numbers.  More... | |
Public Member Functions | |
| GVNPass (GVNOptions Options={}) | |
| LLVM_ABI PreservedAnalyses | run (Function &F, FunctionAnalysisManager &AM) | 
| Run the pass over the function.   | |
| LLVM_ABI void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) | 
| LLVM_ABI void | salvageAndRemoveInstruction (Instruction *I) | 
| This removes the specified instruction from our various maps and marks it for deletion.   | |
| DominatorTree & | getDominatorTree () const | 
| AAResults * | getAliasAnalysis () const | 
| MemoryDependenceResults & | getMemDep () const | 
| LLVM_ABI bool | isPREEnabled () const | 
| LLVM_ABI bool | isLoadPREEnabled () const | 
| LLVM_ABI bool | isLoadInLoopPREEnabled () const | 
| LLVM_ABI bool | isLoadPRESplitBackedgeEnabled () const | 
| LLVM_ABI bool | isMemDepEnabled () const | 
| LLVM_ABI bool | isMemorySSAEnabled () const | 
| Public Member Functions inherited from llvm::PassInfoMixin< GVNPass > | |
| void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) | 
Friends | |
| class | gvn::GVNLegacyPass | 
| struct | DenseMapInfo< Expression > | 
Additional Inherited Members | |
| Static Public Member Functions inherited from llvm::PassInfoMixin< GVNPass > | |
| static StringRef | name () | 
| Gets the name of the pass we are mixed into.   | |
The core GVN pass object.
FIXME: We should have a good summary of the GVN algorithm implemented by this particular pass here.
      
  | 
  inline | 
Definition at line 134 of file GVN.h.
Referenced by llvm::GVNPass::ValueTable::operator=(), and llvm::GVNPass::ValueTable::phiTranslate().
      
  | 
  inline | 
Definition at line 147 of file GVN.h.
Referenced by ConstructSSAForLoadSet().
      
  | 
  inline | 
| bool GVNPass::isLoadInLoopPREEnabled | ( | ) | const | 
Definition at line 861 of file GVN.cpp.
References GVNEnableLoadInLoopPRE.
| bool GVNPass::isLoadPREEnabled | ( | ) | const | 
Definition at line 857 of file GVN.cpp.
References GVNEnableLoadPRE.
| bool GVNPass::isLoadPRESplitBackedgeEnabled | ( | ) | const | 
Definition at line 865 of file GVN.cpp.
References GVNEnableSplitBackedgeInLoadPRE.
| bool GVNPass::isMemDepEnabled | ( | ) | const | 
| bool GVNPass::isMemorySSAEnabled | ( | ) | const | 
| bool GVNPass::isPREEnabled | ( | ) | const | 
Definition at line 853 of file GVN.cpp.
References GVNEnablePRE.
| void GVNPass::printPipeline | ( | raw_ostream & | OS, | 
| function_ref< StringRef(StringRef)> | MapClassName2PassName ) | 
| PreservedAnalyses GVNPass::run | ( | Function & | F, | 
| FunctionAnalysisManager & | AM ) | 
Run the pass over the function.
Definition at line 878 of file GVN.cpp.
References llvm::PreservedAnalyses::all(), assert(), Changed, F, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getCachedResult(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), isMemDepEnabled(), isMemorySSAEnabled(), and llvm::PreservedAnalyses::preserve().
| void GVNPass::salvageAndRemoveInstruction | ( | Instruction * | I | ) | 
This removes the specified instruction from our various maps and marks it for deletion.
Definition at line 930 of file GVN.cpp.
References I, llvm::salvageDebugInfo(), and llvm::salvageKnowledge().
      
  | 
  friend | 
      
  | 
  friend | 
Definition at line 247 of file GVN.h.
Referenced by llvm::createGVNPass().