Replace LLVM_ENABLE_ASSERTION with FORCE_BUILD_LLVM_DISABLE_NDEBUG, and add FORCE_BUILD_LLVM_DEBUG.

FORCE_BUILD_LLVM_DISABLE_NDEBUG and FORCE_BUILD_LLVM_DEBUG are
environment variables analogous to FORCE_BUILD_LLVM_COMPONENTS.

FORCE_BUILD_LLVM_DISABLE_NDEBUG compiles with -D_DEBUG -UNDEBUG.  This
has the effect of enabling assert() and certain internal behaviors
(e.g., various LLVM sanity checks).  FORCE_BUILD_LLVM_DISABLE_NDEBUG
must be set consistently during builds of llvm, clang, libbcc, and
slang to avoid undefined behavior.

FORCE_BUILD_LLVM_DEBUG compiles host code (but not device code) with -O0 -g.

Depends on similar changes in clang, libbcc, and slang.

Change-Id: Ic7cbfeb5fd97061c82a007324fb851eda2117f19
diff --git a/Android.mk b/Android.mk
index f99b5ba..c86080b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,17 @@
 LOCAL_PATH := $(call my-dir)
 LLVM_ROOT_PATH := $(LOCAL_PATH)
-LLVM_ENABLE_ASSERTION := false
+
+FORCE_BUILD_LLVM_DISABLE_NDEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DISABLE_NDEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DISABLE_NDEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DISABLE_NDEBUG)))" "10"
+  $(error FORCE_BUILD_LLVM_DISABLE_NDEBUG may only be true, false, or unset)
+endif
+
+FORCE_BUILD_LLVM_DEBUG ?= false
+# Legality check: FORCE_BUILD_LLVM_DEBUG should consist of one word -- either "true" or "false".
+ifneq "$(words $(FORCE_BUILD_LLVM_DEBUG))$(words $(filter-out true false,$(FORCE_BUILD_LLVM_DEBUG)))" "10"
+  $(error FORCE_BUILD_LLVM_DEBUG may only be true, false, or unset)
+endif
 
 include $(CLEAR_VARS)
 
diff --git a/llvm-device-build.mk b/llvm-device-build.mk
index 823209d..172ecf1 100644
--- a/llvm-device-build.mk
+++ b/llvm-device-build.mk
@@ -28,7 +28,7 @@
                 $(LOCAL_CFLAGS)
 endif
 
-ifeq ($(LLVM_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
 LOCAL_CFLAGS :=	\
 	$(LOCAL_CFLAGS) \
 	-D_DEBUG	\
diff --git a/llvm-host-build.mk b/llvm-host-build.mk
index d2c7e525..3093f58 100644
--- a/llvm-host-build.mk
+++ b/llvm-host-build.mk
@@ -3,10 +3,16 @@
 LOCAL_CLANG := true
 endif
 
+ifeq ($(FORCE_BUILD_LLVM_DEBUG),true)
+local_optflags = -O0 -g
+else
+local_optflags = -O2
+endif
+
 LOCAL_CFLAGS +=	\
 	-D_GNU_SOURCE	\
 	-D__STDC_LIMIT_MACROS	\
-	-O2	\
+	$(local_optflags)	\
 	-fomit-frame-pointer	\
 	-Wall	\
 	-W	\
@@ -15,7 +21,7 @@
 	-Dsprintf=sprintf \
 	$(LOCAL_CFLAGS)
 
-ifeq ($(LLVM_ENABLE_ASSERTION),true)
+ifeq ($(FORCE_BUILD_LLVM_DISABLE_NDEBUG),true)
 LOCAL_CFLAGS :=	\
 	$(LOCAL_CFLAGS) \
 	-D_DEBUG	\