[llvm-commits] [llvm] r87019 - in /llvm/trunk: include/llvm/CodeGen/PseudoSourceValue.h lib/CodeGen/PseudoSourceValue.cpp
Chris Lattner
clattner at apple.com
Thu Nov 12 13:35:26 PST 2009
On Nov 12, 2009, at 12:25 PM, David Greene wrote:
> Author: greened
> Date: Thu Nov 12 14:25:07 2009
> New Revision: 87019
>
> URL: http://llvm.org/viewvc/llvm-project?rev=87019&view=rev
> Log:
>
> Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by
> making it visible to clients and adding LLVM-style cast capability.
> This will be used by AsmPrinter to determine when to emit spill
> comments
> for an instruction.
Thanks David,
Plaese move the printCustom method out of line, this will remove the
need for the raw_ostream #include and give the class an out-of-line
virtual method. Also, please use () instead of (void).
-Chris
>
> Modified:
> llvm/trunk/include/llvm/CodeGen/PseudoSourceValue.h
> llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/PseudoSourceValue.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/PseudoSourceValue.h?rev=87019&r1=87018&r2=87019&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/PseudoSourceValue.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/PseudoSourceValue.h Thu Nov 12
> 14:25:07 2009
> @@ -15,6 +15,7 @@
> #define LLVM_CODEGEN_PSEUDOSOURCEVALUE_H
>
> #include "llvm/Value.h"
> +#include "llvm/Support/raw_ostream.h"
>
> namespace llvm {
> class MachineFrameInfo;
> @@ -32,7 +33,7 @@
> virtual void printCustom(raw_ostream &O) const;
>
> public:
> - PseudoSourceValue();
> + PseudoSourceValue(enum ValueTy Subclass = PseudoSourceValueVal);
>
> /// isConstant - Test whether the memory pointed to by this
> /// PseudoSourceValue has a constant value.
> @@ -76,6 +77,38 @@
> /// constant, this doesn't need to identify a specific jump table.
> static const PseudoSourceValue *getJumpTable();
> };
> +
> + /// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
> + /// for holding FixedStack values, which must include a frame
> + /// index.
> + class FixedStackPseudoSourceValue : public PseudoSourceValue {
> + const int FI;
> + public:
> + explicit FixedStackPseudoSourceValue(int fi) :
> + PseudoSourceValue(FixedStackPseudoSourceValueVal), FI(fi) {}
> +
> + /// classof - Methods for support type inquiry through isa,
> cast, and
> + /// dyn_cast:
> + ///
> + static inline bool classof(const FixedStackPseudoSourceValue *) {
> + return true;
> + }
> + static inline bool classof(const Value *V) {
> + return V->getValueID() == FixedStackPseudoSourceValueVal;
> + }
> +
> + virtual bool isConstant(const MachineFrameInfo *MFI) const;
> +
> + virtual bool isAliased(const MachineFrameInfo *MFI) const;
> +
> + virtual bool mayAlias(const MachineFrameInfo *) const;
> +
> + virtual void printCustom(raw_ostream &OS) const {
> + OS << "FixedStack" << FI;
> + }
> +
> + int getFrameIndex(void) const { return FI; }
> + };
> } // End llvm namespace
>
> #endif
>
> Modified: llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp?rev=87019&r1=87018&r2=87019&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp (original)
> +++ llvm/trunk/lib/CodeGen/PseudoSourceValue.cpp Thu Nov 12 14:25:07
> 2009
> @@ -43,35 +43,14 @@
> // Eventually these should be uniqued on LLVMContext rather than in
> a managed
> // static. For now, we can safely use the global context for the
> time being to
> // squeak by.
> -PseudoSourceValue::PseudoSourceValue() :
> +PseudoSourceValue::PseudoSourceValue(enum ValueTy Subclass) :
> Value(Type::getInt8PtrTy(getGlobalContext()),
> - PseudoSourceValueVal) {}
> + Subclass) {}
>
> void PseudoSourceValue::printCustom(raw_ostream &O) const {
> O << PSVNames[this - *PSVs];
> }
>
> -namespace {
> - /// FixedStackPseudoSourceValue - A specialized PseudoSourceValue
> - /// for holding FixedStack values, which must include a frame
> - /// index.
> - class FixedStackPseudoSourceValue : public PseudoSourceValue {
> - const int FI;
> - public:
> - explicit FixedStackPseudoSourceValue(int fi) : FI(fi) {}
> -
> - virtual bool isConstant(const MachineFrameInfo *MFI) const;
> -
> - virtual bool isAliased(const MachineFrameInfo *MFI) const;
> -
> - virtual bool mayAlias(const MachineFrameInfo *) const;
> -
> - virtual void printCustom(raw_ostream &OS) const {
> - OS << "FixedStack" << FI;
> - }
> - };
> -}
> -
> static ManagedStatic<std::map<int, const PseudoSourceValue *> >
> FSValues;
>
> const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list