Fix symbol table handling in functions.
Also fixes minor issues with branches in instructions (i.e. defining
entry node and computing predecessors).
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3892
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/561823002
diff --git a/src/IceOperand.h b/src/IceOperand.h
index 0828396..36aafe2 100644
--- a/src/IceOperand.h
+++ b/src/IceOperand.h
@@ -335,6 +335,11 @@
SizeT getIndex() const { return Number; }
IceString getName() const;
+ void setName(IceString &NewName) {
+ // Make sure that the name can only be set once.
+ assert(Name.empty());
+ Name = NewName;
+ }
Inst *getDefinition() const { return DefInst; }
void setDefinition(Inst *Inst, const CfgNode *Node);
@@ -427,7 +432,7 @@
// (bit)vector index for liveness analysis.
const SizeT Number;
// Name is optional.
- const IceString Name;
+ IceString Name;
// DefInst is the instruction that produces this variable as its
// dest.
Inst *DefInst;