| Index: src/IceCfgNode.h
|
| diff --git a/src/IceCfgNode.h b/src/IceCfgNode.h
|
| index 279b07f5baf954df40d6b1bd0dc78a76e2e8bb7d..d60b0f014ae4ced1ac2445edd741cdcdd04440ff 100644
|
| --- a/src/IceCfgNode.h
|
| +++ b/src/IceCfgNode.h
|
| @@ -26,17 +26,18 @@ class CfgNode {
|
| CfgNode &operator=(const CfgNode &) = delete;
|
|
|
| public:
|
| - static CfgNode *create(Cfg *Func, SizeT LabelIndex, IceString Name = "") {
|
| - return new (Func->allocate<CfgNode>()) CfgNode(Func, LabelIndex, Name);
|
| + static CfgNode *create(Cfg *Func, SizeT LabelIndex) {
|
| + return new (Func->allocate<CfgNode>()) CfgNode(Func, LabelIndex);
|
| }
|
|
|
| // Access the label number and name for this node.
|
| SizeT getIndex() const { return Number; }
|
| IceString getName() const;
|
| - void setName(IceString &NewName) {
|
| + void setName(const IceString &NewName) {
|
| // Make sure that the name can only be set once.
|
| - assert(Name.empty());
|
| - Name = NewName;
|
| + assert(NameIndex < 0);
|
| + if (!NewName.empty())
|
| + NameIndex = Func->addNodeName(NewName);
|
| }
|
| IceString getAsmName() const {
|
| return ".L" + Func->getFunctionName() + "$" + getName();
|
| @@ -87,10 +88,10 @@ public:
|
| void dump(Cfg *Func) const;
|
|
|
| private:
|
| - CfgNode(Cfg *Func, SizeT LabelIndex, IceString Name);
|
| + CfgNode(Cfg *Func, SizeT LabelIndex);
|
| Cfg *const Func;
|
| const SizeT Number; // label index
|
| - IceString Name; // for dumping only
|
| + int32_t NameIndex; // index into Cfg::NodeNames table
|
| bool HasReturn; // does this block need an epilog?
|
| bool NeedsPlacement;
|
| InstNumberT InstCountEstimate; // rough instruction count estimate
|
|
|