First pass at emitIAS for branches and binding labels

Currently not testing fixups of forward branches and
instead streaming a ".byte (foo - (. + 1))" or
".long (foo - (. + 4))". It should be supported once
emitIAS() delays writing things out until after the
function is fully emitted (and therefore forward labels
have all been bound).

BUG=none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/673543002
diff --git a/src/IceCfgNode.cpp b/src/IceCfgNode.cpp
index 4e4d36b..d715767 100644
--- a/src/IceCfgNode.cpp
+++ b/src/IceCfgNode.cpp
@@ -12,6 +12,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "assembler.h"
 #include "IceCfg.h"
 #include "IceCfgNode.h"
 #include "IceInst.h"
@@ -491,6 +492,10 @@
     Str << Func->getContext()->mangleName(Func->getFunctionName()) << ":\n";
   }
   Str << getAsmName() << ":\n";
+  if (Func->useIntegratedAssembler()) {
+    Assembler *Asm = Func->getAssembler<Assembler>();
+    Asm->BindCfgNodeLabel(getIndex());
+  }
   for (InstPhi *Phi : Phis) {
     if (Phi->isDeleted())
       continue;
@@ -505,7 +510,7 @@
     // suppress them.
     if (I->isRedundantAssign())
       continue;
-    if (Func->UseIntegratedAssembler()) {
+    if (Func->useIntegratedAssembler()) {
       I->emitIAS(Func);
     } else {
       I->emit(Func);