Subzero: For filetype=asm, don't print a blank line for pseudo instrs.

Originally, for each non-deleted instruction, CfgNode::emit() would call the virtual Inst::emit() and then print a newline (also printing end-of-live-range info as necessary).  This resulted in clumsy blank lines in the asm output, corresponding to non target specific pseudo instructions such as FakeDef, FakeUse, FakeKill.

We change this so that CfgNode::emit() only prints a newline for an InstTarget subclass, or if any end-of-live-range text was printed.

If a high-level instruction still wants to emit something in a comment, it's responsible for printing its own newline.

BUG= none
TEST= ./pydir/szbuild_spec2k.py -O2 --force -v --filetype=asm --sz=--asm-verbose=0
TEST= ./pydir/szbuild_spec2k.py -O2 --force -v --filetype=asm --sz=--asm-verbose=1
TEST= ./pydir/szbuild_spec2k.py -O2 --force -v --filetype=asm --target=arm32
R=kschimpf@google.com

Review URL: https://codereview.chromium.org/1431353003 .
diff --git a/src/IceCfgNode.cpp b/src/IceCfgNode.cpp
index 004a0b3..1925d19 100644
--- a/src/IceCfgNode.cpp
+++ b/src/IceCfgNode.cpp
@@ -954,11 +954,13 @@
   Str << "\n";
 }
 
-void emitLiveRangesEnded(Ostream &Str, const Cfg *Func, const Inst *Instr,
+/// Returns true if some text was emitted - in which case the caller definitely
+/// needs to emit a newline character.
+bool emitLiveRangesEnded(Ostream &Str, const Cfg *Func, const Inst *Instr,
                          CfgVector<SizeT> &LiveRegCount) {
+  bool Printed = false;
   if (!BuildDefs::dump())
-    return;
-  bool First = true;
+    return Printed;
   Variable *Dest = Instr->getDest();
   // Normally we increment the live count for the dest register. But we
   // shouldn't if the instruction's IsDestRedefined flag is set, because this
@@ -976,14 +978,15 @@
         ShouldReport = false;
     }
     if (ShouldReport) {
-      if (First)
-        Str << " \t# END=";
-      else
+      if (Printed)
         Str << ",";
+      else
+        Str << " \t# END=";
       Var->emit(Func);
-      First = false;
+      Printed = true;
     }
   }
+  return Printed;
 }
 
 void updateStats(Cfg *Func, const Inst *I) {
@@ -1068,9 +1071,11 @@
       continue;
     }
     I.emit(Func);
+    bool Printed = false;
     if (DecorateAsm)
-      emitLiveRangesEnded(Str, Func, &I, LiveRegCount);
-    Str << "\n";
+      Printed = emitLiveRangesEnded(Str, Func, &I, LiveRegCount);
+    if (Printed || llvm::isa<InstTarget>(&I))
+      Str << "\n";
     updateStats(Func, &I);
   }
   if (DecorateAsm) {