1 //===- llvm/Analysis/LoadValueNumbering.h - Value # Load Insts --*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines a value numbering pass that value #'s load instructions.
11 // To do this, it finds lexically identical load instructions, and uses alias
12 // analysis to determine which loads are guaranteed to produce the same value.
14 // This pass builds off of another value numbering pass to implement value
15 // numbering for non-load instructions. It uses Alias Analysis so that it can
16 // disambiguate the load instructions. The more powerful these base analyses
17 // are, the more powerful the resultant analysis will be.
19 //===----------------------------------------------------------------------===//
21 #ifndef LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H
22 #define LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H
28 /// createLoadValueNumberingPass - Create and return a new pass that implements
29 /// the ValueNumbering interface.
31 FunctionPass *createLoadValueNumberingPass();
33 } // End llvm namespace