LLVM API Documentation

PseudoSourceValue.h

Go to the documentation of this file.
00001 //===-- llvm/CodeGen/PseudoSourceValue.h ------------------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file contains the declaration of the PseudoSourceValue class.
00011 //
00012 //===----------------------------------------------------------------------===//
00013 
00014 #ifndef LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
00015 #define LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
00016 
00017 #include "llvm/Value.h"
00018 
00019 namespace llvm {
00020   class MachineFrameInfo;
00021   class raw_ostream;
00022 
00023   /// PseudoSourceValue - Special value supplied for machine level alias
00024   /// analysis. It indicates that the a memory access references the functions
00025   /// stack frame (e.g., a spill slot), below the stack frame (e.g., argument
00026   /// space), or constant pool.
00027   class PseudoSourceValue : public Value {
00028   public:
00029     PseudoSourceValue();
00030 
00031     /// dump - Support for debugging, callable in GDB: V->dump()
00032     //
00033     virtual void dump() const;
00034 
00035     /// print - Implement operator<< on PseudoSourceValue.
00036     ///
00037     virtual void print(raw_ostream &OS) const;
00038 
00039     /// isConstant - Test whether this PseudoSourceValue has a constant value.
00040     ///
00041     virtual bool isConstant(const MachineFrameInfo *) const;
00042 
00043     /// classof - Methods for support type inquiry through isa, cast, and
00044     /// dyn_cast:
00045     ///
00046     static inline bool classof(const PseudoSourceValue *) { return true; }
00047     static inline bool classof(const Value *V) {
00048       return V->getValueID() == PseudoSourceValueVal;
00049     }
00050 
00051     /// A pseudo source value referencing a fixed stack frame entry,
00052     /// e.g., a spill slot.
00053     static const PseudoSourceValue *getFixedStack(int FI);
00054 
00055     /// A source value referencing the area below the stack frame of a function,
00056     /// e.g., the argument space.
00057     static const PseudoSourceValue *getStack();
00058 
00059     /// A source value referencing the global offset table (or something the
00060     /// like).
00061     static const PseudoSourceValue *getGOT();
00062 
00063     /// A SV referencing the constant pool
00064     static const PseudoSourceValue *getConstantPool();
00065 
00066     /// A SV referencing the jump table
00067     static const PseudoSourceValue *getJumpTable();
00068   };
00069 } // End llvm namespace
00070 
00071 #endif



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.