| Index: src/IceCfg.h
|
| diff --git a/src/IceCfg.h b/src/IceCfg.h
|
| index 7a265ad442602edaa7dffed15391d9ffe5fff50a..73dd814e9c05b775a98e14718634988d77cce43f 100644
|
| --- a/src/IceCfg.h
|
| +++ b/src/IceCfg.h
|
| @@ -63,17 +63,15 @@ public:
|
| // Manage Variables.
|
| // Create a new Variable with a particular type and an optional
|
| // name. The Node argument is the node where the variable is defined.
|
| - template <typename T>
|
| - T *makeVariable(Type Ty, const CfgNode *Node, const IceString &Name = "") {
|
| + template <typename T> T *makeVariable(Type Ty, const IceString &Name = "") {
|
| SizeT Index = Variables.size();
|
| - T *Var = T::create(this, Ty, Node, Index, Name);
|
| + T *Var = T::create(this, Ty, Index, Name);
|
| Variables.push_back(Var);
|
| return Var;
|
| }
|
| // TODO(stichnot): Remove this function with C++11, and use default
|
| // argument <typename T=Variable> above.
|
| - Variable *makeVariable(Type Ty, const CfgNode *Node,
|
| - const IceString &Name = "");
|
| + Variable *makeVariable(Type Ty, const IceString &Name = "");
|
| SizeT getNumVariables() const { return Variables.size(); }
|
| const VarList &getVariables() const { return Variables; }
|
|
|
| @@ -81,9 +79,12 @@ public:
|
| void addArg(Variable *Arg);
|
| const VarList &getArgs() const { return Args; }
|
| VarList &getArgs() { return Args; }
|
| + void addImplicitArg(Variable *Arg);
|
| + const VarList &getImplicitArgs() const { return ImplicitArgs; }
|
|
|
| // Miscellaneous accessors.
|
| TargetLowering *getTarget() const { return Target.get(); }
|
| + VariablesMetadata *getVMetadata() const { return VMetadata.get(); }
|
| Liveness *getLiveness() const { return Live.get(); }
|
| bool hasComputedFrame() const;
|
|
|
| @@ -161,8 +162,10 @@ private:
|
| InstNumberT NextInstNumber;
|
| VarList Variables;
|
| VarList Args; // subset of Variables, in argument order
|
| + VarList ImplicitArgs; // subset of Variables
|
| llvm::OwningPtr<Liveness> Live;
|
| llvm::OwningPtr<TargetLowering> Target;
|
| + llvm::OwningPtr<VariablesMetadata> VMetadata;
|
|
|
| // CurrentNode is maintained during dumping/emitting just for
|
| // validating Variable::DefNode. Normally, a traversal over
|
|
|