//===- llvm/Analysis/LoadValueNumbering.h - Value # Load Insts --*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by the LLVM research group and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // 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 namespace llvm { class FunctionPass; /// createLoadValueNumberingPass - Create and return a new pass that implements /// the ValueNumbering interface. /// FunctionPass *createLoadValueNumberingPass(); } // End llvm namespace #endif