Index: src/IceCfgNode.h |
diff --git a/src/IceCfgNode.h b/src/IceCfgNode.h |
index cf3e83c987c674d6ad7c199061d291072dfc4b3b..6d7811c359554bd166c2774e9a3fb26891ee9969 100644 |
--- a/src/IceCfgNode.h |
+++ b/src/IceCfgNode.h |
@@ -37,7 +37,11 @@ public: |
/// Access the label number and name for this node. |
SizeT getIndex() const { return Number; } |
void resetIndex(SizeT NewNumber) { Number = NewNumber; } |
- NodeString getName() const { return Name; } |
+ std::string getName() const { |
+ if (Name.hasStdString()) |
+ return Name.toString(); |
+ return "__" + std::to_string(NumberOrig); |
+ } |
void setName(const std::string &NewName) { |
if (NewName.empty()) |
return; |
@@ -118,10 +122,13 @@ public: |
} |
private: |
- CfgNode(Cfg *Func, SizeT Number); |
+ CfgNode(Cfg *Func, SizeT Number) |
+ : Func(Func), Number(Number), NumberOrig(Number), |
+ Name(NodeString::createWithoutString(Func)) {} |
bool livenessValidateIntervals(Liveness *Liveness) const; |
Cfg *const Func; |
- SizeT Number; /// invariant: Func->Nodes[Number]==this |
+ SizeT Number; /// invariant: Func->Nodes[Number]==this |
+ const SizeT NumberOrig; /// used for name auto-generation |
NodeString Name; |
SizeT LoopNestDepth = 0; /// the loop nest depth of this node |
bool HasReturn = false; /// does this block need an epilog? |