diff options
author | Logan Chien <loganchien@google.com> | 2011-10-19 11:36:30 +0800 |
---|---|---|
committer | Logan Chien <loganchien@google.com> | 2011-10-19 11:37:40 +0800 |
commit | d2351e5c088147b5d71d5745cf07b5085a7f0073 (patch) | |
tree | b97ce400bb124278e5e8925b5dd11689498430b7 | |
parent | d98f643517ec975c59f768d3ea2605b08119bc22 (diff) | |
download | external_llvm-d2351e5c088147b5d71d5745cf07b5085a7f0073.zip external_llvm-d2351e5c088147b5d71d5745cf07b5085a7f0073.tar.gz external_llvm-d2351e5c088147b5d71d5745cf07b5085a7f0073.tar.bz2 |
Add build rules for llc, opt, and llvm-link on target device.
Change-Id: I42f35da6f5ce77ab8969746131f5e6fdd42e5afa
-rw-r--r-- | Android.mk | 74 | ||||
-rw-r--r-- | include/llvm/CodeGen/LinkAllAsmWriterComponents.h | 2 | ||||
-rw-r--r-- | lib/Analysis/Android.mk | 125 | ||||
-rw-r--r-- | lib/Target/ARM/AsmParser/Android.mk | 57 | ||||
-rw-r--r-- | lib/Transforms/Instrumentation/Android.mk | 29 | ||||
-rw-r--r-- | tools/llc/Android.mk | 91 | ||||
-rw-r--r-- | tools/llvm-link/Android.mk | 46 | ||||
-rw-r--r-- | tools/opt/Android.mk | 56 |
8 files changed, 332 insertions, 148 deletions
@@ -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 diff --git a/include/llvm/CodeGen/LinkAllAsmWriterComponents.h b/include/llvm/CodeGen/LinkAllAsmWriterComponents.h index 7d1b1fe..4b94173 100644 --- a/include/llvm/CodeGen/LinkAllAsmWriterComponents.h +++ b/include/llvm/CodeGen/LinkAllAsmWriterComponents.h @@ -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 diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk index aa4dcc0..385ed74 100644 --- a/lib/Analysis/Android.mk +++ b/lib/Analysis/Android.mk @@ -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) diff --git a/lib/Target/ARM/AsmParser/Android.mk b/lib/Target/ARM/AsmParser/Android.mk index 57678e0..ad4c213 100644 --- a/lib/Target/ARM/AsmParser/Android.mk +++ b/lib/Target/ARM/AsmParser/Android.mk @@ -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) diff --git a/lib/Transforms/Instrumentation/Android.mk b/lib/Transforms/Instrumentation/Android.mk index d4ac0da..85482a6 100644 --- a/lib/Transforms/Instrumentation/Android.mk +++ b/lib/Transforms/Instrumentation/Android.mk @@ -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 index 0000000..0a693ba --- /dev/null +++ b/tools/llc/Android.mk @@ -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) diff --git a/tools/llvm-link/Android.mk b/tools/llvm-link/Android.mk index e24d744..bcf70e5 100644 --- a/tools/llvm-link/Android.mk +++ b/tools/llvm-link/Android.mk @@ -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) diff --git a/tools/opt/Android.mk b/tools/opt/Android.mk index 7e7455e..77bb2a2 100644 --- a/tools/opt/Android.mk +++ b/tools/opt/Android.mk @@ -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) |