Default to LLVM 7.0 JIT in Android build.
Also fall back to LLVM 3.0 automatically if C++11 is not supported.
Bug b/115344057
Bug b/116540140
Change-Id: Ied0bfa17fcdc82f1181704fd63eda5c312b8380e
Reviewed-on: https://swiftshader-review.googlesource.com/c/21510
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/Android.mk b/Android.mk
index 5165436..1cc9690 100644
--- a/Android.mk
+++ b/Android.mk
@@ -17,35 +17,27 @@
LOCAL_PATH := $(call my-dir)
swiftshader_root := $(LOCAL_PATH)
-# LLVM version for SwiftShader
-REACTOR_LLVM_VERSION ?= 3
+# Default LLVM version for SwiftShader's JIT compiler (Reactor).
+REACTOR_LLVM_VERSION ?= 7
+# Subzero is an alternative JIT compiler. It is smaller and generally slower.
+REACTOR_USE_SUBZERO := false
ifeq ($(REACTOR_LLVM_VERSION),3)
# Reactor with LLVM 3.0 doesn't support ARM. Use Subzero as the Reactor JIT
# back-end on ARM.
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm))
-SWIFTSHADER_USE_SUBZERO := true
+REACTOR_USE_SUBZERO := true
endif
endif
-
-# Check whether SwiftShader requires full C++ 11 support.
-ifdef SWIFTSHADER_USE_SUBZERO
-swiftshader_requires_cxx11 := true
-endif
-
-ifeq ($(REACTOR_LLVM_VERSION),7)
-swiftshader_requires_cxx11 := true
-endif
-
-ifeq ($(swiftshader_requires_cxx11),true)
-# Full C++ 11 support is only available from Marshmallow and up.
+# Subzero and LLVM 7.0 require C++11.
+# Full C++11 support is only available from Marshmallow and up.
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
-swiftshader_unsupported_build := true
+# Fall back to LLVM 3.0.
+REACTOR_USE_SUBZERO := false
+REACTOR_LLVM_VERSION := 3
endif
-endif
-
# Check whether $(TARGET_ARCH) is supported.
ifeq ($(REACTOR_LLVM_VERSION),3)
@@ -60,7 +52,6 @@
endif
endif
-
ifneq ($(swiftshader_unsupported_build),true)
include $(swiftshader_root)/src/Android.mk
include $(swiftshader_root)/tests/GLESUnitTests/Android.mk
diff --git a/src/Android.mk b/src/Android.mk
index 9e06bea..5f94583 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -7,7 +7,7 @@
$(LOCAL_PATH)/OpenGL/ \
$(LOCAL_PATH)
-ifdef SWIFTSHADER_USE_SUBZERO
+ifdef REACTOR_USE_SUBZERO
COMMON_C_INCLUDES += \
$(LOCAL_PATH)/../third_party/subzero/ \
@@ -66,7 +66,7 @@
Reactor/DebugAndroid.cpp \
Reactor/ExecutableMemory.cpp
-ifdef SWIFTSHADER_USE_SUBZERO
+ifdef REACTOR_USE_SUBZERO
COMMON_SRC_FILES += \
Reactor/SubzeroReactor.cpp \
Reactor/Optimizer.cpp
diff --git a/src/OpenGL/libGLES_CM/Android.mk b/src/OpenGL/libGLES_CM/Android.mk
index 624b350..9b00f42 100644
--- a/src/OpenGL/libGLES_CM/Android.mk
+++ b/src/OpenGL/libGLES_CM/Android.mk
@@ -56,7 +56,7 @@
$(LOCAL_PATH)/../../Shader/ \
$(LOCAL_PATH)/../../Main/
-ifdef SWIFTSHADER_USE_SUBZERO
+ifdef REACTOR_USE_SUBZERO
COMMON_STATIC_LIBRARIES := libsubzero
else
COMMON_STATIC_LIBRARIES := libLLVM_swiftshader
diff --git a/src/OpenGL/libGLESv2/Android.mk b/src/OpenGL/libGLESv2/Android.mk
index f92358b..747a6b0 100644
--- a/src/OpenGL/libGLESv2/Android.mk
+++ b/src/OpenGL/libGLESv2/Android.mk
@@ -65,7 +65,7 @@
$(LOCAL_PATH)/../../Shader/ \
$(LOCAL_PATH)/../../Main/
-ifdef SWIFTSHADER_USE_SUBZERO
+ifdef REACTOR_USE_SUBZERO
COMMON_STATIC_LIBRARIES := libsubzero
else
COMMON_STATIC_LIBRARIES := libLLVM_swiftshader