Subzero: Allow builds with assertions disabled.

1. Setting command-line make variable NOASSERT=1 adds -DNDEBUG and builds in a separate directory.  By default, we still get Release+Asserts.

2. Add "(void)foo;" as necessary when foo is only used in an assert(), to remove warnings.

3. Minimize inclusion of llvm/Support/Timer.h because it adds warnings.

4. Call validateLiveness() only when asserts are enabled, because it's relatively expensive.

BUG= none
R=jvoung@chromium.org

Review URL: https://codereview.chromium.org/623493002
diff --git a/src/assembler_ia32.cpp b/src/assembler_ia32.cpp
index 3dce9b7..3775cc8 100644
--- a/src/assembler_ia32.cpp
+++ b/src/assembler_ia32.cpp
@@ -91,6 +91,7 @@
   EmitFixup(DirectCallRelocation::create(this, FK_PcRel_4, label));
   EmitInt32(-4);
   assert((buffer_.GetPosition() - call_start) == kCallExternalLabelSize);
+  (void)call_start;
 }
 
 void AssemblerX86::pushl(GPRRegister reg) {
@@ -1749,6 +1750,7 @@
 void AssemblerX86::bswap(Type Ty, GPRRegister reg) {
   AssemblerBuffer::EnsureCapacity ensured(&buffer_);
   assert(Ty == IceType_i32);
+  (void)Ty;
   EmitUint8(0x0F);
   EmitUint8(0xC8 | reg);
 }
@@ -2145,6 +2147,7 @@
                                     GPRRegister shifter) {
   AssemblerBuffer::EnsureCapacity ensured(&buffer_);
   assert(shifter == RegX8632::Encoded_Reg_ecx);
+  (void)shifter;
   EmitUint8(0xD3);
   EmitOperand(rm, Operand(operand));
 }