Subzero: Add "--verbose=status" option.

This just prints the function being translated, once per function.  This is useful if there is a crash or fatal error somewhere, and you want to quickly discover which function to set -verbose-focus on.

Also, fixes some warnings/errors in the MINIMAL build.

BUG= none
R=kschimpf@google.com

Review URL: https://codereview.chromium.org/1439983002 .
diff --git a/src/IceCfg.cpp b/src/IceCfg.cpp
index 3211c30..9bc1ba5 100644
--- a/src/IceCfg.cpp
+++ b/src/IceCfg.cpp
@@ -181,6 +181,8 @@
       FunctionTimer.reset(new TimerMarker(
           getContext()->getTimerID(GlobalContext::TSK_Funcs, Name),
           getContext(), GlobalContext::TSK_Funcs));
+    if (isVerbose(IceV_Status))
+      getContext()->getStrDump() << ">>>Translating " << Name << "\n";
   }
   TimerMarker T(TimerStack::TT_translate, this);
 
diff --git a/src/IceCfg.h b/src/IceCfg.h
index 92a1680..b39673b 100644
--- a/src/IceCfg.h
+++ b/src/IceCfg.h
@@ -50,10 +50,15 @@
   GlobalContext *getContext() const { return Ctx; }
   uint32_t getSequenceNumber() const { return SequenceNumber; }
 
+  static constexpr VerboseMask defaultVerboseMask() {
+    return IceV_All & ~IceV_Status;
+  }
   /// Returns true if any of the specified options in the verbose mask are set.
   /// If the argument is omitted, it checks if any verbose options at all are
   /// set.
-  bool isVerbose(VerboseMask Mask = IceV_All) const { return VMask & Mask; }
+  bool isVerbose(VerboseMask Mask = defaultVerboseMask()) const {
+    return VMask & Mask;
+  }
   void setVerbose(VerboseMask Mask) { VMask = Mask; }
 
   /// \name Manage the name and return type of the function being translated.
diff --git a/src/IceClFlags.cpp b/src/IceClFlags.cpp
index 1e194a1..fedd422 100644
--- a/src/IceClFlags.cpp
+++ b/src/IceClFlags.cpp
@@ -269,6 +269,8 @@
         clEnumValN(Ice::IceV_Folding, "fold", "Instruction folding details"),
         clEnumValN(Ice::IceV_RMW, "rmw", "ReadModifyWrite optimization"),
         clEnumValN(Ice::IceV_Loop, "loop", "Loop nest depth analysis"),
+        clEnumValN(Ice::IceV_Status, "status",
+                   "Print the name of the function being translated"),
         clEnumValN(Ice::IceV_All, "all", "Use all verbose options"),
         clEnumValN(Ice::IceV_Most, "most",
                    "Use all verbose options except 'regalloc'"),
diff --git a/src/IceDefs.h b/src/IceDefs.h
index d73f9e7..6fd73f5 100644
--- a/src/IceDefs.h
+++ b/src/IceDefs.h
@@ -239,6 +239,7 @@
   IceV_Folding = 1 << 11,
   IceV_RMW = 1 << 12,
   IceV_Loop = 1 << 13,
+  IceV_Status = 1 << 14,
   IceV_All = ~IceV_None,
   IceV_Most = IceV_All & ~IceV_LinearScan
 };
diff --git a/src/IceGlobalContext.cpp b/src/IceGlobalContext.cpp
index cac253b..fbdcd1b 100644
--- a/src/IceGlobalContext.cpp
+++ b/src/IceGlobalContext.cpp
@@ -379,8 +379,9 @@
 
 void GlobalContext::lowerGlobals(const IceString &SectionSuffix) {
   TimerMarker T(TimerStack::TT_emitGlobalInitializers, this);
-  const bool DumpGlobalVariables = BuildDefs::dump() && Flags.getVerbose() &&
-                                   Flags.getVerboseFocusOn().empty();
+  const bool DumpGlobalVariables =
+      BuildDefs::dump() && (Flags.getVerbose() & Cfg::defaultVerboseMask()) &&
+      Flags.getVerboseFocusOn().empty();
   if (DumpGlobalVariables) {
     OstreamLocker L(this);
     Ostream &Stream = getStrDump();
diff --git a/src/IceInstX86BaseImpl.h b/src/IceInstX86BaseImpl.h
index 80a1f6b..2c3bfe2 100644
--- a/src/IceInstX86BaseImpl.h
+++ b/src/IceInstX86BaseImpl.h
@@ -1237,6 +1237,7 @@
   if (!BuildDefs::dump())
     return;
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
              ->getInstructionSet() >= InstX86Base<Machine>::Traits::SSE4_1);
@@ -1246,6 +1247,7 @@
 template <class Machine>
 void InstX86Blendvps<Machine>::emitIAS(const Cfg *Func) const {
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
              ->getInstructionSet() >= InstX86Base<Machine>::Traits::SSE4_1);
@@ -1260,6 +1262,7 @@
   if (!BuildDefs::dump())
     return;
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
              ->getInstructionSet() >= InstX86Base<Machine>::Traits::SSE4_1);
@@ -1269,6 +1272,7 @@
 template <class Machine>
 void InstX86Pblendvb<Machine>::emitIAS(const Cfg *Func) const {
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
              ->getInstructionSet() >= InstX86Base<Machine>::Traits::SSE4_1);
@@ -1376,6 +1380,7 @@
 void InstX86Insertps<Machine>::emitIAS(const Cfg *Func) const {
   assert(this->getSrcSize() == 3);
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
              ->getInstructionSet() >= InstX86Base<Machine>::Traits::SSE4_1);
@@ -2308,6 +2313,7 @@
   // point value between a vector and a scalar (which movss is used for). Clean
   // this up.
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(Target->typeWidthInBytesOnStack(DestTy) ==
          Target->typeWidthInBytesOnStack(SrcTy));
   const Operand *NewSrc = Src;
@@ -2786,6 +2792,7 @@
   assert(this->getSrcSize() == 2);
   // pextrb and pextrd are SSE4.1 instructions.
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(this->getSrc(0)->getType() == IceType_v8i16 ||
          this->getSrc(0)->getType() == IceType_v8i1 ||
          static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
@@ -2815,6 +2822,7 @@
   Type DispatchTy = InstX86Base<Machine>::Traits::getInVectorElementType(
       this->getSrc(0)->getType());
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(DispatchTy == IceType_i16 ||
          static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)
@@ -2846,6 +2854,7 @@
   assert(this->getSrcSize() == 3);
   // pinsrb and pinsrd are SSE4.1 instructions.
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(this->getDest()->getType() == IceType_v8i16 ||
          this->getDest()->getType() == IceType_v8i1 ||
          static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
@@ -2883,6 +2892,7 @@
   const Operand *Src0 = this->getSrc(1);
   Type DispatchTy = Src0->getType();
   TargetLowering *Target = Func->getTarget();
+  (void)Target;
   assert(DispatchTy == IceType_i16 ||
          static_cast<typename InstX86Base<Machine>::Traits::TargetLowering *>(
              Target)