LLVM API Documentation
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