OSDN Git Service

android: enable support for R600 targets for radeonsi
authorMauro Rossi <issor.oruam@gmail.com>
Sat, 12 Dec 2015 22:11:42 +0000 (23:11 +0100)
committerMauro Rossi <mauro.rossi@inwind.it>
Mon, 4 Jan 2016 15:46:52 +0000 (16:46 +0100)
Inspired by former psglia work on LLVM 3.5.x, now applied to 3.7.0

Gallium radeonsi driver requires LLVM.
Some required features(like compiling the R600 Taget itself) are not enabled.

These changes enable R600 targets and fix a problem with "intrinsic",
due to a typo in tablegen command option.

14 files changed:
Android.mk
lib/ExecutionEngine/Android.mk
lib/ExecutionEngine/Interpreter/Android.mk
lib/ExecutionEngine/MCJIT/Android.mk
lib/ExecutionEngine/Orc/Android.mk
lib/ExecutionEngine/RuntimeDyld/Android.mk
lib/Target/R600/Android.mk [new file with mode: 0644]
lib/Target/R600/AsmParser/Android.mk [new file with mode: 0644]
lib/Target/R600/InstPrinter/Android.mk [new file with mode: 0644]
lib/Target/R600/MCTargetDesc/Android.mk [new file with mode: 0644]
lib/Target/R600/TargetInfo/Android.mk [new file with mode: 0644]
llvm-tblgen-rules.mk
llvm.mk
shared_llvm.mk

index f99b5ba..1864fcc 100644 (file)
@@ -82,6 +82,14 @@ subdirs += \
   lib/Target/X86/TargetInfo \
   lib/Target/X86/Utils
 
+# R600 Code Generation Libraries
+subdirs += \
+  lib/Target/R600 \
+  lib/Target/R600/AsmParser \
+  lib/Target/R600/InstPrinter \
+  lib/Target/R600/MCTargetDesc \
+  lib/Target/R600/TargetInfo
+
 # LLVM Command Line Tools
 subdirs += \
   tools/bugpoint \
index 6578e2b..ae1e592 100644 (file)
@@ -13,7 +13,36 @@ LOCAL_SRC_FILES := \
 
 LOCAL_MODULE:= libLLVMExecutionEngine
 
+LOCAL_C_INCLUDES := $(LLVM_ROOT_PATH)/llvm/ExecutionEngine
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libLLVMRuntimeDyld libLLVMMCJIT
+
 LOCAL_MODULE_TAGS := optional
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+include $(CLEAR_VARS)
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+
+LOCAL_SRC_FILES := \
+       ExecutionEngineBindings.cpp \
+       ExecutionEngine.cpp \
+       GDBRegistrationListener.cpp \
+       SectionMemoryManager.cpp \
+       TargetSelect.cpp
+
+LOCAL_C_INCLUDES := $(LLVM_ROOT_PATH)/llvm/ExecutionEngine
+
+LOCAL_MODULE:= libLLVMExecutionEngine
+
+LOCAL_WHOLE_STATIC_LIBRARIES := libLLVMRuntimeDyld libLLVMMCJIT
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
index 3823b3e..562dd77 100644 (file)
@@ -16,3 +16,22 @@ LOCAL_MODULE_TAGS := optional
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+include $(CLEAR_VARS)
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+
+LOCAL_SRC_FILES :=      \
+  Execution.cpp         \
+  ExternalFunctions.cpp \
+  Interpreter.cpp       \
+
+LOCAL_MODULE:= libLLVMInterpreter
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
index 5827212..3f26814 100644 (file)
@@ -13,3 +13,20 @@ LOCAL_MODULE_TAGS := optional
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+include $(CLEAR_VARS)
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+
+LOCAL_SRC_FILES := \
+  MCJIT.cpp
+
+LOCAL_MODULE:= libLLVMMCJIT
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
index f28f359..a08826b 100644 (file)
@@ -17,3 +17,24 @@ LOCAL_MODULE_TAGS := optional
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+include $(CLEAR_VARS)
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+
+LOCAL_SRC_FILES := \
+  CloneSubModule.cpp \
+  ExecutionUtils.cpp \
+  IndirectionUtils.cpp \
+  OrcMCJITReplacement.cpp \
+  OrcTargetSupport.cpp
+
+LOCAL_MODULE:= libLLVMOrcJIT
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
index 40fdd7c..14f1cc6 100644 (file)
@@ -18,3 +18,25 @@ LOCAL_MODULE_TAGS := optional
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+include $(CLEAR_VARS)
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+
+LOCAL_SRC_FILES := \
+  RTDyldMemoryManager.cpp \
+  RuntimeDyldChecker.cpp \
+  RuntimeDyld.cpp \
+  RuntimeDyldCOFF.cpp \
+  RuntimeDyldELF.cpp \
+  RuntimeDyldMachO.cpp
+
+LOCAL_MODULE:= libLLVMRuntimeDyld
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
diff --git a/lib/Target/R600/Android.mk b/lib/Target/R600/Android.mk
new file mode 100644 (file)
index 0000000..c73304d
--- /dev/null
@@ -0,0 +1,101 @@
+LOCAL_PATH := $(call my-dir)
+
+AMDGPU_codegen_TBLGEN_TABLES := \
+  AMDGPUGenRegisterInfo.inc \
+  AMDGPUGenInstrInfo.inc \
+  AMDGPUGenDAGISel.inc  \
+  AMDGPUGenSubtargetInfo.inc \
+  AMDGPUGenMCCodeEmitter.inc \
+  AMDGPUGenCallingConv.inc \
+  AMDGPUGenIntrinsics.inc \
+  AMDGPUGenDFAPacketizer.inc \
+  AMDGPUGenAsmWriter.inc \
+  AMDGPUGenAsmMatcher.inc
+
+AMDGPU_codegen_SRC_FILES := \
+  AMDILCFGStructurizer.cpp \
+  AMDGPUAlwaysInlinePass.cpp \
+  AMDGPUAsmPrinter.cpp \
+  AMDGPUFrameLowering.cpp \
+  AMDGPUIntrinsicInfo.cpp \
+  AMDGPUISelDAGToDAG.cpp \
+  AMDGPUMCInstLower.cpp \
+  AMDGPUMachineFunction.cpp \
+  AMDGPUSubtarget.cpp \
+  AMDGPUTargetMachine.cpp \
+  AMDGPUTargetTransformInfo.cpp \
+  AMDGPUISelLowering.cpp \
+  AMDGPUInstrInfo.cpp \
+  AMDGPUPromoteAlloca.cpp \
+  AMDGPURegisterInfo.cpp \
+  R600ClauseMergePass.cpp \
+  R600ControlFlowFinalizer.cpp \
+  R600EmitClauseMarkers.cpp \
+  R600ExpandSpecialInstrs.cpp \
+  R600InstrInfo.cpp \
+  R600ISelLowering.cpp \
+  R600MachineFunctionInfo.cpp \
+  R600MachineScheduler.cpp \
+  R600OptimizeVectorRegisters.cpp \
+  R600Packetizer.cpp \
+  R600RegisterInfo.cpp \
+  R600TextureIntrinsicsReplacer.cpp \
+  SIAnnotateControlFlow.cpp \
+  SIFixSGPRCopies.cpp \
+  SIFixSGPRLiveRanges.cpp \
+  SIFoldOperands.cpp \
+  SIInsertWaits.cpp \
+  SIInstrInfo.cpp \
+  SIISelLowering.cpp \
+  SILoadStoreOptimizer.cpp \
+  SILowerControlFlow.cpp \
+  SILowerI1Copies.cpp \
+  SIMachineFunctionInfo.cpp \
+  SIPrepareScratchRegs.cpp \
+  SIRegisterInfo.cpp \
+  SIShrinkInstructions.cpp \
+  SITypeRewriter.cpp
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_codegen_TBLGEN_TABLES)
+
+LOCAL_SRC_FILES := $(AMDGPU_codegen_SRC_FILES)
+
+LOCAL_MODULE:= libLLVMR600CodeGen
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources)
+
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device only
+# =====================================================
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_codegen_TBLGEN_TABLES)
+
+LOCAL_SRC_FILES := $(AMDGPU_codegen_SRC_FILES)
+
+LOCAL_MODULE:= libLLVMR600CodeGen
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources)
+
+include $(BUILD_STATIC_LIBRARY)
+endif
diff --git a/lib/Target/R600/AsmParser/Android.mk b/lib/Target/R600/AsmParser/Android.mk
new file mode 100644 (file)
index 0000000..f21dd27
--- /dev/null
@@ -0,0 +1,51 @@
+LOCAL_PATH := $(call my-dir)
+
+AMDGPU_asmparser_TBLGEN_TABLES := \
+  AMDGPUGenAsmMatcher.inc
+
+AMDGPU_asmparser_SRC_FILES := \
+  AMDGPUAsmParser.cpp
+
+# For the device
+# =====================================================
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_asmparser_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_asmparser_SRC_FILES)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
+
+LOCAL_MODULE:= libLLVMR600AsmParser
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_asmparser_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_asmparser_SRC_FILES)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
+
+LOCAL_MODULE := libLLVMR600AsmParser
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Target/R600/InstPrinter/Android.mk b/lib/Target/R600/InstPrinter/Android.mk
new file mode 100644 (file)
index 0000000..9afb4f7
--- /dev/null
@@ -0,0 +1,54 @@
+LOCAL_PATH := $(call my-dir)
+
+AMDGPU_instprinter_TBLGEN_TABLES := \
+  AMDGPUGenAsmWriter.inc \
+  AMDGPUGenInstrInfo.inc \
+  AMDGPUGenRegisterInfo.inc \
+  AMDGPUGenSubtargetInfo.inc
+
+AMDGPU_instprinter_SRC_FILES := \
+  AMDGPUInstPrinter.cpp
+
+# For the device
+# =====================================================
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_instprinter_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_instprinter_SRC_FILES)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
+
+LOCAL_MODULE:= libLLVMR600AsmPrinter
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_instprinter_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_instprinter_SRC_FILES)
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
+
+LOCAL_MODULE := libLLVMR600AsmPrinter
+
+LOCAL_MODULE_TAGS := optional
+
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
diff --git a/lib/Target/R600/MCTargetDesc/Android.mk b/lib/Target/R600/MCTargetDesc/Android.mk
new file mode 100644 (file)
index 0000000..c94e382
--- /dev/null
@@ -0,0 +1,57 @@
+LOCAL_PATH := $(call my-dir)
+
+AMDGPU_mc_desc_TBLGEN_TABLES := \
+  AMDGPUGenRegisterInfo.inc \
+  AMDGPUGenInstrInfo.inc \
+  AMDGPUGenSubtargetInfo.inc
+
+AMDGPU_mc_desc_SRC_FILES := \
+  AMDGPUAsmBackend.cpp \
+  AMDGPUELFObjectWriter.cpp \
+  AMDGPUMCCodeEmitter.cpp \
+  AMDGPUMCTargetDesc.cpp \
+  AMDGPUMCAsmInfo.cpp \
+  R600MCCodeEmitter.cpp \
+  SIMCCodeEmitter.cpp
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+LOCAL_MODULE:= libLLVMR600Desc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_STATIC_LIBRARIES := libLLVMR600CodeGen
+
+LOCAL_SRC_FILES := $(AMDGPU_mc_desc_SRC_FILES)
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(AMDGPU_mc_desc_TBLGEN_TABLES)
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device only
+# =====================================================
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+LOCAL_MODULE:= libLLVMR600Desc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_STATIC_LIBRARIES := libLLVMR600CodeGen
+
+LOCAL_SRC_FILES := $(AMDGPU_mc_desc_SRC_FILES)
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(AMDGPU_mc_desc_TBLGEN_TABLES)
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
diff --git a/lib/Target/R600/TargetInfo/Android.mk b/lib/Target/R600/TargetInfo/Android.mk
new file mode 100644 (file)
index 0000000..38f21d4
--- /dev/null
@@ -0,0 +1,61 @@
+LOCAL_PATH := $(call my-dir)
+
+AMDGPU_target_info_TBLGEN_TABLES := \
+  AMDGPUGenRegisterInfo.inc \
+  AMDGPUGenSubtargetInfo.inc \
+  AMDGPUGenInstrInfo.inc
+
+AMDGPU_target_info_SRC_FILES := \
+  AMDGPUTargetInfo.cpp
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_target_info_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_target_info_SRC_FILES)
+
+LOCAL_MODULE:= libLLVMR600Info
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+LOCAL_STATIC_LIBRARIES := libLLVMR600CodeGen
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the device
+# =====================================================
+ifneq (true,$(DISABLE_LLVM_DEVICE_BUILDS))
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+TBLGEN_TABLES := $(AMDGPU_target_info_TBLGEN_TABLES)
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+
+LOCAL_SRC_FILES := $(AMDGPU_target_info_SRC_FILES)
+
+LOCAL_MODULE:= libLLVMR600Info
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+LOCAL_STATIC_LIBRARIES := libLLVMR600CodeGen
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
+endif
index ba59471..aa30b56 100644 (file)
@@ -193,7 +193,14 @@ ifneq ($(filter %GenIntrinsics.inc,$(tblgen_gen_tables)),)
 $(generated_sources)/%GenIntrinsics.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
 $(generated_sources)/%GenIntrinsics.inc: $(tblgen_source_dir)/%.td \
                                      $(tblgen_td_deps) $(LLVM_TBLGEN)
-       $(call transform-td-to-out,tgt_intrinsics)
+       $(call transform-td-to-out,tgt-intrinsic)
+endif
+
+ifneq ($(filter %GenDFAPacketizer.inc,$(tblgen_gen_tables)),)
+$(generated_sources)/%GenDFAPacketizer.inc: TBLGEN_LOCAL_MODULE := $(LOCAL_MODULE)
+$(generated_sources)/%GenDFAPacketizer.inc: $(tblgen_source_dir)/%.td \
+                                     $(tblgen_td_deps) | $(LLVM_TBLGEN)
+       $(call transform-td-to-out,dfa-packetizer)
 endif
 
 ifneq ($(findstring ARMGenDecoderTables.inc,$(tblgen_gen_tables)),)
diff --git a/llvm.mk b/llvm.mk
index c9d0e19..0fbb5af 100644 (file)
--- a/llvm.mk
+++ b/llvm.mk
@@ -8,4 +8,4 @@ LLVM_DEVICE_BUILD_MK := $(LLVM_ROOT_PATH)/llvm-device-build.mk
 LLVM_GEN_INTRINSICS_MK := $(LLVM_ROOT_PATH)/llvm-gen-intrinsics.mk
 LLVM_TBLGEN_RULES_MK := $(LLVM_ROOT_PATH)/llvm-tblgen-rules.mk
 
-LLVM_SUPPORTED_ARCH := arm arm64 mips mips64 x86 x86_64
+LLVM_SUPPORTED_ARCH := arm arm64 mips mips64 x86 x86_64 r600
index fff83dc..aa91ebe 100644 (file)
@@ -24,7 +24,15 @@ llvm_x86_static_libraries := \
   libLLVMX86AsmParser \
   libLLVMX86AsmPrinter \
   libLLVMX86Utils \
-  libLLVMX86Disassembler
+  libLLVMX86Disassembler \
+  libLLVMExecutionEngine
+
+llvm_r600_static_libraries := \
+  libLLVMR600CodeGen \
+  libLLVMR600Info \
+  libLLVMR600Desc \
+  libLLVMR600AsmParser \
+  libLLVMR600AsmPrinter
 
 llvm_mips_static_libraries := \
   libLLVMMipsCodeGen \
@@ -68,9 +76,11 @@ llvm_post_static_libraries := \
 
 llvm_host_static_libraries := \
   libLLVMExecutionEngine \
+  libLLVMMCDisassembler \
   libLLVMRuntimeDyld \
   libLLVMMCJIT \
-  libLLVMOrcJIT
+  libLLVMOrcJIT \
+  libLLVMProfileData
 
 ifeq (true,$(FORCE_BUILD_LLVM_COMPONENTS))
 # HOST LLVM shared library build
@@ -86,6 +96,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
   $(llvm_pre_static_libraries) \
   $(llvm_arm_static_libraries) \
   $(llvm_x86_static_libraries) \
+  $(llvm_r600_static_libraries) \
   $(llvm_mips_static_libraries) \
   $(llvm_aarch64_static_libraries) \
   $(llvm_host_static_libraries) \
@@ -120,6 +131,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES := \
 LOCAL_WHOLE_STATIC_LIBRARIES_arm += $(llvm_arm_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_x86_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_x86_static_libraries)
+LOCAL_WHOLE_STATIC_LIBRARIES_r600 += $(llvm_r600_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_mips += $(llvm_mips_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_mips64 += $(llvm_mips_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_aarch64_static_libraries)
@@ -128,6 +140,7 @@ LOCAL_WHOLE_STATIC_LIBRARIES_arm64 += $(llvm_arm_static_libraries)
 ifeq ($(BUILD_ARM_FOR_X86),true)
 LOCAL_WHOLE_STATIC_LIBRARIES_x86 += $(llvm_arm_static_libraries)
 LOCAL_WHOLE_STATIC_LIBRARIES_x86_64 += $(llvm_arm_static_libraries)
+LOCAL_WHOLE_STATIC_LIBRARIES_r600 += $(llvm_r600_static_libraries)
 endif
 
 LOCAL_WHOLE_STATIC_LIBRARIES += $(llvm_post_static_libraries)