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/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
index 9d9f6dc..3145aa7 100644
--- a/src/IceTargetLoweringX8632.cpp
+++ b/src/IceTargetLoweringX8632.cpp
@@ -355,11 +355,9 @@
Func->liveness(Liveness_Intervals);
if (Func->hasError())
return;
- // Validate the live range computations. Do it outside the timing
- // code. TODO: Put this under a flag.
- bool ValidLiveness = Func->validateLiveness();
- assert(ValidLiveness);
- (void)ValidLiveness; // used only in assert()
+ // Validate the live range computations. The expensive validation
+ // call is deliberately only made when assertions are enabled.
+ assert(Func->validateLiveness());
ComputedLiveRanges = true;
// The post-codegen dump is done here, after liveness analysis and
// associated cleanup, to make the dump cleaner and more useful.