#define LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
#include "llvm/Value.h"
-#include "llvm/Support/raw_ostream.h"
namespace llvm {
class MachineFrameInfo;
class raw_ostream;
/// PseudoSourceValue - Special value supplied for machine level alias
- /// analysis. It indicates that the a memory access references the functions
+ /// analysis. It indicates that a memory access references the functions
/// stack frame (e.g., a spill slot), below the stack frame (e.g., argument
/// space), or constant pool.
class PseudoSourceValue : public Value {
virtual void printCustom(raw_ostream &O) const;
public:
- PseudoSourceValue(enum ValueTy Subclass = PseudoSourceValueVal);
+ explicit PseudoSourceValue(enum ValueTy Subclass = PseudoSourceValueVal);
/// isConstant - Test whether the memory pointed to by this
/// PseudoSourceValue has a constant value.
///
static inline bool classof(const PseudoSourceValue *) { return true; }
static inline bool classof(const Value *V) {
- return V->getValueID() == PseudoSourceValueVal;
+ return V->getValueID() == PseudoSourceValueVal ||
+ V->getValueID() == FixedStackPseudoSourceValueVal;
}
/// A pseudo source value referencing a fixed stack frame entry,
virtual bool mayAlias(const MachineFrameInfo *) const;
- virtual void printCustom(raw_ostream &OS) const {
- OS << "FixedStack" << FI;
- }
+ virtual void printCustom(raw_ostream &OS) const;
- int getFrameIndex(void) const { return FI; }
+ int getFrameIndex() const { return FI; }
};
} // End llvm namespace