Commit fde88d96 by Nicolas Capens Committed by Nicolas Capens

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/21510Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent 4c84379f
...@@ -17,36 +17,28 @@ ...@@ -17,36 +17,28 @@
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
swiftshader_root := $(LOCAL_PATH) swiftshader_root := $(LOCAL_PATH)
# LLVM version for SwiftShader # Default LLVM version for SwiftShader's JIT compiler (Reactor).
REACTOR_LLVM_VERSION ?= 3 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) ifeq ($(REACTOR_LLVM_VERSION),3)
# Reactor with LLVM 3.0 doesn't support ARM. Use Subzero as the Reactor JIT # Reactor with LLVM 3.0 doesn't support ARM. Use Subzero as the Reactor JIT
# back-end on ARM. # back-end on ARM.
ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm)) ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm))
SWIFTSHADER_USE_SUBZERO := true REACTOR_USE_SUBZERO := true
endif endif
endif endif
# Subzero and LLVM 7.0 require C++11.
# Check whether SwiftShader requires full C++ 11 support. # Full C++11 support is only available from Marshmallow and up.
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.
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow) ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
swiftshader_unsupported_build := true # Fall back to LLVM 3.0.
endif REACTOR_USE_SUBZERO := false
REACTOR_LLVM_VERSION := 3
endif endif
# Check whether $(TARGET_ARCH) is supported. # Check whether $(TARGET_ARCH) is supported.
ifeq ($(REACTOR_LLVM_VERSION),3) ifeq ($(REACTOR_LLVM_VERSION),3)
ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm)) ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm))
...@@ -60,7 +52,6 @@ swiftshader_unsupported_build := true ...@@ -60,7 +52,6 @@ swiftshader_unsupported_build := true
endif endif
endif endif
ifneq ($(swiftshader_unsupported_build),true) ifneq ($(swiftshader_unsupported_build),true)
include $(swiftshader_root)/src/Android.mk include $(swiftshader_root)/src/Android.mk
include $(swiftshader_root)/tests/GLESUnitTests/Android.mk include $(swiftshader_root)/tests/GLESUnitTests/Android.mk
......
...@@ -7,7 +7,7 @@ COMMON_C_INCLUDES += \ ...@@ -7,7 +7,7 @@ COMMON_C_INCLUDES += \
$(LOCAL_PATH)/OpenGL/ \ $(LOCAL_PATH)/OpenGL/ \
$(LOCAL_PATH) $(LOCAL_PATH)
ifdef SWIFTSHADER_USE_SUBZERO ifdef REACTOR_USE_SUBZERO
COMMON_C_INCLUDES += \ COMMON_C_INCLUDES += \
$(LOCAL_PATH)/../third_party/subzero/ \ $(LOCAL_PATH)/../third_party/subzero/ \
...@@ -66,7 +66,7 @@ COMMON_SRC_FILES += \ ...@@ -66,7 +66,7 @@ COMMON_SRC_FILES += \
Reactor/DebugAndroid.cpp \ Reactor/DebugAndroid.cpp \
Reactor/ExecutableMemory.cpp Reactor/ExecutableMemory.cpp
ifdef SWIFTSHADER_USE_SUBZERO ifdef REACTOR_USE_SUBZERO
COMMON_SRC_FILES += \ COMMON_SRC_FILES += \
Reactor/SubzeroReactor.cpp \ Reactor/SubzeroReactor.cpp \
Reactor/Optimizer.cpp Reactor/Optimizer.cpp
......
...@@ -56,7 +56,7 @@ COMMON_C_INCLUDES := \ ...@@ -56,7 +56,7 @@ COMMON_C_INCLUDES := \
$(LOCAL_PATH)/../../Shader/ \ $(LOCAL_PATH)/../../Shader/ \
$(LOCAL_PATH)/../../Main/ $(LOCAL_PATH)/../../Main/
ifdef SWIFTSHADER_USE_SUBZERO ifdef REACTOR_USE_SUBZERO
COMMON_STATIC_LIBRARIES := libsubzero COMMON_STATIC_LIBRARIES := libsubzero
else else
COMMON_STATIC_LIBRARIES := libLLVM_swiftshader COMMON_STATIC_LIBRARIES := libLLVM_swiftshader
......
...@@ -65,7 +65,7 @@ COMMON_C_INCLUDES := \ ...@@ -65,7 +65,7 @@ COMMON_C_INCLUDES := \
$(LOCAL_PATH)/../../Shader/ \ $(LOCAL_PATH)/../../Shader/ \
$(LOCAL_PATH)/../../Main/ $(LOCAL_PATH)/../../Main/
ifdef SWIFTSHADER_USE_SUBZERO ifdef REACTOR_USE_SUBZERO
COMMON_STATIC_LIBRARIES := libsubzero COMMON_STATIC_LIBRARIES := libsubzero
else else
COMMON_STATIC_LIBRARIES := libLLVM_swiftshader COMMON_STATIC_LIBRARIES := libLLVM_swiftshader
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment