OSDN Git Service

Add build rules for llc, opt, and llvm-link on target device.
authorLogan Chien <loganchien@google.com>
Wed, 19 Oct 2011 03:36:30 +0000 (11:36 +0800)
committerLogan Chien <loganchien@google.com>
Wed, 19 Oct 2011 03:37:40 +0000 (11:37 +0800)
Change-Id: I42f35da6f5ce77ab8969746131f5e6fdd42e5afa

Android.mk
include/llvm/CodeGen/LinkAllAsmWriterComponents.h
lib/Analysis/Android.mk
lib/Target/ARM/AsmParser/Android.mk
lib/Transforms/Instrumentation/Android.mk
tools/llc/Android.mk [new file with mode: 0644]
tools/llvm-link/Android.mk
tools/opt/Android.mk

index 19b5c3d..5bd2170 100644 (file)
@@ -5,43 +5,43 @@ LLVM_ENABLE_ASSERTION := false
 include $(CLEAR_VARS)
 
 subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
-               lib/Support     \
-               utils/TableGen  \
-               tools/llvm-as   \
-               tools/llvm-link \
-               lib/VMCore      \
-               lib/Bitcode/Reader      \
-               lib/Bitcode/Writer      \
-               lib/Analysis    \
-               lib/Analysis/IPA        \
-               lib/AsmParser \
-               lib/Transforms/IPO      \
-               lib/Transforms/Utils    \
-               lib/Transforms/Scalar   \
-               lib/Transforms/InstCombine      \
-               lib/Transforms/Instrumentation  \
-               lib/CodeGen     \
-               lib/CodeGen/SelectionDAG        \
-               lib/CodeGen/AsmPrinter  \
-               lib/Target      \
-               lib/Target/ARM  \
-               lib/Target/ARM/AsmParser        \
-               lib/Target/ARM/InstPrinter \
-               lib/Target/ARM/Disassembler     \
-               lib/Target/ARM/MCTargetDesc \
-               lib/Target/ARM/TargetInfo       \
-               lib/Target/X86  \
-               lib/Target/X86/AsmParser        \
-               lib/Target/X86/InstPrinter      \
-               lib/Target/X86/Disassembler     \
-               lib/Target/X86/MCTargetDesc \
-               lib/Target/X86/TargetInfo       \
-               lib/Target/X86/Utils    \
-               lib/ExecutionEngine/JIT \
-               lib/MC  \
-               lib/MC/MCParser \
-                lib/Linker      \
-       ))
+  lib/Analysis \
+  lib/Analysis/IPA \
+  lib/AsmParser \
+  lib/Bitcode/Reader \
+  lib/Bitcode/Writer \
+  lib/ExecutionEngine/JIT \
+  lib/CodeGen \
+  lib/CodeGen/AsmPrinter \
+  lib/CodeGen/SelectionDAG \
+  lib/Linker \
+  lib/MC \
+  lib/MC/MCParser \
+  lib/Support \
+  lib/Target \
+  lib/Target/ARM \
+  lib/Target/ARM/AsmParser \
+  lib/Target/ARM/InstPrinter \
+  lib/Target/ARM/Disassembler \
+  lib/Target/ARM/MCTargetDesc \
+  lib/Target/ARM/TargetInfo \
+  lib/Target/X86 \
+  lib/Target/X86/AsmParser \
+  lib/Target/X86/InstPrinter \
+  lib/Target/X86/Disassembler \
+  lib/Target/X86/MCTargetDesc \
+  lib/Target/X86/TargetInfo \
+  lib/Target/X86/Utils \
+  lib/Transforms/IPO \
+  lib/Transforms/InstCombine \
+  lib/Transforms/Instrumentation \
+  lib/Transforms/Scalar \
+  lib/Transforms/Utils \
+  lib/VMCore \
+  utils/TableGen \
+  tools/llvm-as \
+  tools/llvm-link \
+  ))
 
 include $(LOCAL_PATH)/llvm.mk
 
index 7d1b1fe..4b94173 100644 (file)
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/GCs.h"
 #include <cstdlib>
 
+#ifndef ANDROID_TARGET_BUILD
 namespace {
   struct ForceAsmWriterLinking {
     ForceAsmWriterLinking() {
@@ -33,5 +34,6 @@ namespace {
     }
   } ForceAsmWriterLinking; // Force link by creating a global definition.
 }
+#endif
 
 #endif // LLVM_CODEGEN_LINKALLASMWRITERCOMPONENTS_H
index aa4dcc0..385ed74 100644 (file)
@@ -1,74 +1,71 @@
 LOCAL_PATH:= $(call my-dir)
 
-analysis_SRC_FILES :=  \
-       AliasAnalysis.cpp       \
-       AliasAnalysisCounter.cpp        \
-       AliasAnalysisEvaluator.cpp      \
-       AliasDebugger.cpp       \
-       AliasSetTracker.cpp     \
-       Analysis.cpp    \
-       BasicAliasAnalysis.cpp  \
-       BlockFrequency.cpp \
-       BranchProbabilityInfo.cpp \
-       CFGPrinter.cpp  \
-       CaptureTracking.cpp     \
-       ConstantFolding.cpp     \
-       DIBuilder.cpp           \
-       DbgInfoPrinter.cpp      \
-       DebugInfo.cpp   \
-       DominanceFrontier.cpp   \
-       DomPrinter.cpp  \
-       IVUsers.cpp     \
-       InlineCost.cpp  \
-       InstCount.cpp   \
-       InstructionSimplify.cpp \
-       Interval.cpp    \
-       IntervalPartition.cpp   \
-       LazyValueInfo.cpp       \
-       LibCallAliasAnalysis.cpp        \
-       LibCallSemantics.cpp    \
-       Loads.cpp       \
-       NoAliasAnalysis.cpp \
-       MemDepPrinter.cpp \
-       MemoryBuiltins.cpp  \
-       MemoryDependenceAnalysis.cpp    \
-       RegionPass.cpp  \
-       LoopDependenceAnalysis.cpp  \
-       LoopInfo.cpp    \
-       LoopPass.cpp    \
-       PathNumbering.cpp \
-       PathProfileInfo.cpp \
-       PathProfileVerifier.cpp \
-       PHITransAddr.cpp    \
-       PostDominators.cpp  \
-       ProfileEstimatorPass.cpp    \
-       ProfileInfo.cpp \
-       ProfileInfoLoader.cpp   \
-       ProfileInfoLoaderPass.cpp   \
-       ProfileVerifierPass.cpp \
-       ScalarEvolution.cpp \
-       ScalarEvolutionAliasAnalysis.cpp    \
-       ScalarEvolutionExpander.cpp \
-       ScalarEvolutionNormalization.cpp    \
-       SparsePropagation.cpp   \
-       Trace.cpp   \
-       TypeBasedAliasAnalysis.cpp \
-       ValueTracking.cpp
+analysis_SRC_FILES := \
+  AliasAnalysis.cpp \
+  AliasAnalysisCounter.cpp \
+  AliasAnalysisEvaluator.cpp \
+  AliasDebugger.cpp \
+  AliasSetTracker.cpp \
+  Analysis.cpp \
+  BasicAliasAnalysis.cpp \
+  BlockFrequency.cpp \
+  BranchProbabilityInfo.cpp \
+  CFGPrinter.cpp \
+  CaptureTracking.cpp \
+  ConstantFolding.cpp \
+  DIBuilder.cpp \
+  DbgInfoPrinter.cpp \
+  DebugInfo.cpp \
+  DominanceFrontier.cpp \
+  DomPrinter.cpp \
+  IVUsers.cpp \
+  InlineCost.cpp \
+  InstCount.cpp \
+  InstructionSimplify.cpp \
+  Interval.cpp \
+  IntervalPartition.cpp \
+  LazyValueInfo.cpp \
+  LibCallAliasAnalysis.cpp \
+  LibCallSemantics.cpp \
+  Loads.cpp \
+  NoAliasAnalysis.cpp \
+  MemDepPrinter.cpp \
+  MemoryBuiltins.cpp \
+  MemoryDependenceAnalysis.cpp \
+  RegionInfo.cpp \
+  RegionPass.cpp \
+  RegionPrinter.cpp \
+  Lint.cpp \
+  LoopDependenceAnalysis.cpp \
+  LoopInfo.cpp \
+  LoopPass.cpp \
+  ModuleDebugInfoPrinter.cpp \
+  PathNumbering.cpp \
+  PathProfileInfo.cpp \
+  PathProfileVerifier.cpp \
+  PHITransAddr.cpp \
+  PostDominators.cpp \
+  ProfileEstimatorPass.cpp \
+  ProfileInfo.cpp \
+  ProfileInfoLoader.cpp \
+  ProfileInfoLoaderPass.cpp \
+  ProfileVerifierPass.cpp \
+  ScalarEvolution.cpp \
+  ScalarEvolutionAliasAnalysis.cpp \
+  ScalarEvolutionExpander.cpp \
+  ScalarEvolutionNormalization.cpp \
+  SparsePropagation.cpp \
+  Trace.cpp \
+  TypeBasedAliasAnalysis.cpp \
+  ValueTracking.cpp
 
 # For the host
 # =====================================================
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES :=     \
-       $(analysis_SRC_FILES) \
-       Lint.cpp        \
-       ModuleDebugInfoPrinter.cpp      \
-       RegionInfo.cpp  \
-       RegionPrinter.cpp
-
 LOCAL_MODULE:= libLLVMAnalysis
-
 LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(analysis_SRC_FILES)
 
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
@@ -78,11 +75,9 @@ include $(BUILD_HOST_STATIC_LIBRARY)
 # =====================================================
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES := $(analysis_SRC_FILES)
-
 LOCAL_MODULE:= libLLVMAnalysis
-
 LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(analysis_SRC_FILES)
 
 include $(LLVM_DEVICE_BUILD_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
index 57678e0..ad4c213 100644 (file)
@@ -1,30 +1,55 @@
 LOCAL_PATH := $(call my-dir)
 
-# For the host only
-# =====================================================
-include $(CLEAR_VARS)
-include $(CLEAR_TBLGEN_VARS)
+#===---------------------------------------------------------------===
+# libARMAsmParser (common)
+#===---------------------------------------------------------------===
 
-TBLGEN_TABLES :=       \
-       ARMGenInstrInfo.inc     \
-       ARMGenRegisterInfo.inc \
-       ARMGenAsmMatcher.inc \
-       ARMGenSubtargetInfo.inc
+arm_asm_parser_SRC_FILES := \
+  ARMAsmLexer.cpp \
+  ARMAsmParser.cpp
 
+arm_asm_parser_TBLGEN_TABLES := \
+  ARMGenInstrInfo.inc \
+  ARMGenRegisterInfo.inc \
+  ARMGenAsmMatcher.inc \
+  ARMGenSubtargetInfo.inc
 
-TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+arm_asm_parser_TBLGEN_TD_DIR := $(LOCAL_PATH)/..
 
-LOCAL_SRC_FILES :=     \
-       ARMAsmLexer.cpp \
-       ARMAsmParser.cpp
+arm_asm_parser_C_INCLUDES := $(LOCAL_PATH)/..
 
-LOCAL_C_INCLUDES +=    \
-       $(LOCAL_PATH)/..
 
-LOCAL_MODULE:= libLLVMARMAsmParser
+#===---------------------------------------------------------------===
+# libARMAsmParser (host)
+#===---------------------------------------------------------------===
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
 
+LOCAL_MODULE:= libLLVMARMAsmParser
 LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES :=     $(arm_asm_parser_SRC_FILES)
+LOCAL_C_INCLUDES +=    $(arm_asm_parser_C_INCLUDES)
+TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES)
+TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR)
 
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+
+#===---------------------------------------------------------------===
+# libARMAsmParser (target)
+#===---------------------------------------------------------------===
+include $(CLEAR_VARS)
+include $(CLEAR_TBLGEN_VARS)
+
+LOCAL_MODULE:= libLLVMARMAsmParser
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES :=     $(arm_asm_parser_SRC_FILES)
+LOCAL_C_INCLUDES +=    $(arm_asm_parser_C_INCLUDES)
+TBLGEN_TABLES := $(arm_asm_parser_TBLGEN_TABLES)
+TBLGEN_TD_DIR := $(arm_asm_parser_TBLGEN_TD_DIR)
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_TBLGEN_RULES_MK)
+include $(BUILD_STATIC_LIBRARY)
index d4ac0da..85482a6 100644 (file)
@@ -1,20 +1,31 @@
 LOCAL_PATH:= $(call my-dir)
 
+instrumentation_SRC_FILES := \
+  EdgeProfiling.cpp \
+  GCOVProfiling.cpp \
+  Instrumentation.cpp \
+  ProfilingUtils.cpp \
+  PathProfiling.cpp \
+  OptimalEdgeProfiling.cpp
+
 # For the host
 # =====================================================
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES :=      \
-     EdgeProfiling.cpp   \
-     GCOVProfiling.cpp \
-     Instrumentation.cpp \
-     ProfilingUtils.cpp      \
-     PathProfiling.cpp \
-     OptimalEdgeProfiling.cpp
-
 LOCAL_MODULE:= libLLVMInstrumentation
-
 LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_STATIC_LIBRARY)
+
+# For the target
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_MODULE:= libLLVMInstrumentation
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(instrumentation_SRC_FILES)
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/tools/llc/Android.mk b/tools/llc/Android.mk
new file mode 100644 (file)
index 0000000..0a693ba
--- /dev/null
@@ -0,0 +1,91 @@
+LOCAL_PATH := $(call my-dir)
+
+LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
+
+
+#===---------------------------------------------------------------===
+# llc command line tool (common)
+#===---------------------------------------------------------------===
+
+llvm_llc_SRC_FILES := \
+  llc.cpp
+
+llvm_llc_STATIC_LIBRARIES := \
+  libLLVMARMCodeGen \
+  libLLVMARMDisassembler \
+  libLLVMARMAsmParser \
+  libLLVMARMDesc \
+  libLLVMARMInfo \
+  libLLVMAsmPrinter \
+  libLLVMAsmParser \
+  libLLVMBitReader \
+  libLLVMBitWriter \
+  libLLVMSelectionDAG \
+  libLLVMInstCombine \
+  libLLVMInstrumentation \
+  libLLVMCodeGen \
+  libLLVMipo \
+  libLLVMipa \
+  libLLVMLinker \
+  libLLVMMC \
+  libLLVMMCParser \
+  libLLVMScalarOpts \
+  libLLVMTransformUtils \
+  libLLVMAnalysis \
+  libLLVMCore \
+  libLLVMSupport \
+  libLLVMTarget
+
+
+#===---------------------------------------------------------------===
+# llc command line tool (host)
+#===---------------------------------------------------------------===
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := llc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+
+LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES)
+LOCAL_STATIC_LIBRARIES := \
+  libLLVMX86Info \
+  libLLVMX86AsmParser \
+  libLLVMX86CodeGen \
+  libLLVMX86Disassembler \
+  libLLVMX86AsmPrinter \
+  libLLVMX86Desc \
+  libLLVMX86Utils \
+  $(llvm_llc_STATIC_LIBRARIES)
+LOCAL_LDLIBS += -lpthread -lm -ldl
+LOCAL_C_INCLUDES += external/llvm/include
+
+include $(LLVM_ROOT_PATH)/llvm.mk
+include $(LLVM_HOST_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_HOST_EXECUTABLE)
+
+
+#===---------------------------------------------------------------===
+# llc command line tool (target)
+#===---------------------------------------------------------------===
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := llc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+
+LOCAL_SRC_FILES := $(llvm_llc_SRC_FILES)
+LOCAL_C_INCLUDES += external/llvm/include
+LOCAL_STATIC_LIBRARIES := $(llvm_llc_STATIC_LIBRARIES)
+LOCAL_SHARED_LIBRARIES := \
+  libdl \
+  libstlport
+
+
+include $(LLVM_ROOT_PATH)/llvm.mk
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_EXECUTABLE)
index e24d744..bcf70e5 100644 (file)
@@ -1,24 +1,44 @@
 LOCAL_PATH:= $(call my-dir)
 
-include $(CLEAR_VARS)
+llvm_link_SRC_FILES := \
+  llvm-link.cpp
 
-LOCAL_SRC_FILES :=     \
-       llvm-link.cpp
+llvm_link_STATIC_LIBRARIES := \
+  libLLVMLinker \
+  libLLVMBitReader \
+  libLLVMBitWriter \
+  libLLVMCore \
+  libLLVMSupport \
+  libLLVMAsmParser \
+  libLLVMTransformUtils
 
-LOCAL_STATIC_LIBRARIES := \
-    libLLVMLinker \
-    libLLVMBitReader \
-    libLLVMBitWriter \
-    libLLVMCore \
-    libLLVMSupport \
-    libLLVMAsmParser \
-    libLLVMTransformUtils
+#===---------------------------------------------------------------===
+# llvm-link command line tool (host)
+#===---------------------------------------------------------------===
 
-LOCAL_MODULE := llvm-link
+include $(CLEAR_VARS)
 
+LOCAL_MODULE := llvm-link
 LOCAL_MODULE_TAGS := optional
-
+LOCAL_SRC_FILES := $(llvm_link_SRC_FILES)
+LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES)
 LOCAL_LDLIBS += -lpthread -lm -ldl
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_EXECUTABLE)
+
+#===---------------------------------------------------------------===
+# llvm-link command line tool (target)
+#===---------------------------------------------------------------===
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := llvm-link
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(llvm_link_SRC_FILES)
+LOCAL_STATIC_LIBRARIES := $(llvm_link_STATIC_LIBRARIES)
+LOCAL_SHARED_LIBRARIES := \
+  libstlport
+
+include $(LLVM_DEVICE_BUILD_MK)
+include $(BUILD_EXECUTABLE)
index 7e7455e..77bb2a2 100644 (file)
@@ -1,17 +1,19 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
+LOCAL_PATH := $(call my-dir)
 
-LOCAL_MODULE := opt
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := EXECUTABLES
+LLVM_ROOT_PATH := $(LOCAL_PATH)/../..
 
-LOCAL_SRC_FILES := \
+
+#===---------------------------------------------------------------===
+# opt command line tool (common)
+#===---------------------------------------------------------------===
+
+llvm_opt_SRC_FILES := \
   AnalysisWrappers.cpp \
   GraphPrinters.cpp \
   PrintSCC.cpp \
   opt.cpp
 
-LOCAL_STATIC_LIBRARIES := \
+llvm_opt_STATIC_LIBRARIES := \
   libLLVMipo \
   libLLVMScalarOpts \
   libLLVMInstCombine \
@@ -27,10 +29,48 @@ LOCAL_STATIC_LIBRARIES := \
   libLLVMCore \
   libLLVMSupport
 
-LOCAL_LDLIBS += -lpthread -lm -ldl
 
+#===---------------------------------------------------------------===
+# opt command line tool (host)
+#===---------------------------------------------------------------===
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := opt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_IS_HOST_MODULE := true
+
+LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES)
+LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES)
+LOCAL_LDLIBS += -lpthread -lm -ldl
 LOCAL_C_INCLUDES += external/llvm/include
 
+include $(LLVM_ROOT_PATH)/llvm.mk
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
 include $(BUILD_HOST_EXECUTABLE)
+
+
+#===---------------------------------------------------------------===
+# opt command line tool (target)
+#===---------------------------------------------------------------===
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := opt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+
+LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES)
+LOCAL_C_INCLUDES += external/llvm/include
+LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES)
+LOCAL_SHARED_LIBRARIES := \
+  libdl \
+  libstlport
+
+
+include $(LLVM_ROOT_PATH)/llvm.mk
+include $(LLVM_DEVICE_BUILD_MK)
+include $(LLVM_GEN_INTRINSICS_MK)
+include $(BUILD_EXECUTABLE)