diff --git a/src/IceCfgNode.h b/src/IceCfgNode.h
index bf96aef..645dc57 100644
--- a/src/IceCfgNode.h
+++ b/src/IceCfgNode.h
@@ -29,6 +29,14 @@
   // Access the label number and name for this node.
   SizeT getIndex() const { return Number; }
   IceString getName() const;
+  IceString getAsmName() const {
+    return ".L" + Func->getFunctionName() + "$" + getName();
+  }
+
+  // The HasReturn flag indicates that this node contains a return
+  // instruction and therefore needs an epilog.
+  void setHasReturn() { HasReturn = true; }
+  bool getHasReturn() const { return HasReturn; }
 
   // Access predecessor and successor edge lists.
   const NodeList &getInEdges() const { return InEdges; }
@@ -42,6 +50,11 @@
   // node's successors.
   void computePredecessors();
 
+  void placePhiLoads();
+  void placePhiStores();
+  void deletePhis();
+  void genCode();
+  void emit(Cfg *Func) const;
   void dump(Cfg *Func) const;
 
 private:
@@ -51,6 +64,7 @@
   Cfg *const Func;
   const SizeT Number; // label index
   IceString Name;     // for dumping only
+  bool HasReturn;     // does this block need an epilog?
   NodeList InEdges;   // in no particular order
   NodeList OutEdges;  // in no particular order
   PhiList Phis;       // unordered set of phi instructions
