diff --git a/llvm/include/llvm/Analysis/LoadValueNumbering.h b/llvm/include/llvm/Analysis/LoadValueNumbering.h new file mode 100644 index 000000000000..cca4beab1aaf --- /dev/null +++ b/llvm/include/llvm/Analysis/LoadValueNumbering.h @@ -0,0 +1,24 @@ +//===- llvm/Analysis/LoadValueNumbering.h - Value # Load Insts --*- C++ -*-===// +// +// This file defines a value numbering pass that value #'s load instructions. +// To do this, it finds lexically identical load instructions, and uses alias +// analysis to determine which loads are guaranteed to produce the same value. +// +// This pass builds off of another value numbering pass to implement value +// numbering for non-load instructions. It uses Alias Analysis so that it can +// disambiguate the load instructions. The more powerful these base analyses +// are, the more powerful the resultant analysis will be. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H +#define LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H + +class Pass; + +/// createLoadValueNumberingPass - Create and return a new pass that implements +/// the ValueNumbering interface. +/// +Pass *createLoadValueNumberingPass(); + +#endif