LLVM API Documentation

LoadValueNumbering.h

Go to the documentation of this file.
00001 //===- llvm/Analysis/LoadValueNumbering.h - Value # Load Insts --*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file was developed by the LLVM research group and is distributed under
00006 // the University of Illinois Open Source License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file defines a value numbering pass that value #'s load instructions.
00011 // To do this, it finds lexically identical load instructions, and uses alias
00012 // analysis to determine which loads are guaranteed to produce the same value.
00013 //
00014 // This pass builds off of another value numbering pass to implement value
00015 // numbering for non-load instructions.  It uses Alias Analysis so that it can
00016 // disambiguate the load instructions.  The more powerful these base analyses
00017 // are, the more powerful the resultant analysis will be.
00018 //
00019 //===----------------------------------------------------------------------===//
00020 
00021 #ifndef LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H
00022 #define LLVM_ANALYSIS_LOAD_VALUE_NUMBERING_H
00023 
00024 namespace llvm {
00025 
00026 class FunctionPass;
00027 
00028 /// createLoadValueNumberingPass - Create and return a new pass that implements
00029 /// the ValueNumbering interface.
00030 ///
00031 FunctionPass *createLoadValueNumberingPass();
00032 
00033 } // End llvm namespace
00034 
00035 #endif