Subzero: Don't store std::string objects inside Variable.

Instead, extend 668a7a333d6ddc3102b5b7c7c07448f6d259113c to include both CfgNode and Variable, keeping a pool of strings in the Cfg.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/798693003
diff --git a/src/IceInst.cpp b/src/IceInst.cpp
index e1b5f43..3e1ecf7 100644
--- a/src/IceInst.cpp
+++ b/src/IceInst.cpp
@@ -361,8 +361,9 @@
 Inst *InstPhi::lower(Cfg *Func) {
   Variable *Dest = getDest();
   assert(Dest);
-  IceString PhiName = Dest->getName() + "_phi";
-  Variable *NewSrc = Func->makeVariable(Dest->getType(), PhiName);
+  Variable *NewSrc = Func->makeVariable(Dest->getType());
+  if (ALLOW_DUMP)
+    NewSrc->setName(Func, Dest->getName(Func) + "_phi");
   this->Dest = NewSrc;
   return InstAssign::create(Func, Dest, NewSrc);
 }