summaryrefslogtreecommitdiff
path: root/compiler/Android.bp
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/Android.bp')
-rw-r--r--compiler/Android.bp320
1 files changed, 187 insertions, 133 deletions
diff --git a/compiler/Android.bp b/compiler/Android.bp
index a879bd8f06..e0c1744ce3 100644
--- a/compiler/Android.bp
+++ b/compiler/Android.bp
@@ -28,6 +28,106 @@ package {
default_applicable_licenses: ["art_license"],
}
+// Common dependencies for libart-compiler_deps and libartd-compiler_deps.
+cc_defaults {
+ name: "libart-compiler_common_deps",
+ shared_libs: [
+ "libbase",
+ "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib.
+ "libartpalette",
+ ],
+ header_libs: [
+ "libart_headers",
+ "libart_generated_headers",
+ ],
+}
+
+// Dependencies of libart-compiler, used to propagate libart-compiler deps when static linking.
+art_cc_defaults {
+ name: "libart-compiler_deps",
+ defaults: ["libart-compiler_common_deps"],
+ shared_libs: [
+ "libartbase",
+ "libprofile",
+ "libdexfile",
+ ],
+ static_libs: ["libelffile"],
+ codegen: {
+ arm: {
+ // VIXL assembly support for ARM targets.
+ static_libs: [
+ "libvixl",
+ ],
+ },
+ arm64: {
+ // VIXL assembly support for ARM64 targets.
+ static_libs: [
+ "libvixl",
+ ],
+ },
+ },
+ // In order to save memory on device `art::HGraphVisualizerDisassembler` loads
+ // `libart-disassembler.so` dynamically. Host builds of `libart-compiler` depend on
+ // `libart-disassembler` directly with `shared_libs` or `static_libs`.
+ target: {
+ host: {
+ shared: {
+ shared_libs: [
+ "libart-disassembler",
+ ],
+ },
+ },
+ android: {
+ runtime_libs: [
+ "libart-disassembler",
+ ],
+ },
+ },
+}
+
+// Dependencies of libartd-compiler, used to propagate libartd-compiler deps when static linking.
+art_cc_defaults {
+ name: "libartd-compiler_deps",
+ defaults: ["libart-compiler_common_deps"],
+ shared_libs: [
+ "libartbased",
+ "libprofiled",
+ "libdexfiled",
+ ],
+ static_libs: ["libelffiled"],
+ codegen: {
+ arm: {
+ // VIXL assembly support for ARM targets.
+ static_libs: [
+ "libvixld",
+ ],
+ },
+ arm64: {
+ // VIXL assembly support for ARM64 targets.
+ static_libs: [
+ "libvixld",
+ ],
+ },
+ },
+ // In order to save memory on device `art::HGraphVisualizerDisassembler` loads
+ // `libartd-disassembler.so` dynamically. Host builds of `libartd-compiler` depend on
+ // `libartd-disassembler` directly with `shared_libs` or `static_libs`.
+ target: {
+ host: {
+ shared: {
+ shared_libs: [
+ "libartd-disassembler",
+ ],
+ },
+ },
+ android: {
+ runtime_libs: [
+ "libartd-disassembler",
+ ],
+ },
+ },
+}
+
art_cc_defaults {
name: "libart-compiler-defaults",
defaults: ["art_defaults"],
@@ -46,6 +146,7 @@ art_cc_defaults {
"optimizing/bounds_check_elimination.cc",
"optimizing/builder.cc",
"optimizing/cha_guard_optimization.cc",
+ "optimizing/code_generation_data.cc",
"optimizing/code_generator.cc",
"optimizing/code_generator_utils.cc",
"optimizing/code_sinking.cc",
@@ -54,7 +155,6 @@ art_cc_defaults {
"optimizing/data_type.cc",
"optimizing/dead_code_elimination.cc",
"optimizing/escape.cc",
- "optimizing/execution_subgraph.cc",
"optimizing/graph_checker.cc",
"optimizing/graph_visualizer.cc",
"optimizing/gvn.cc",
@@ -77,10 +177,10 @@ art_cc_defaults {
"optimizing/optimizing_compiler.cc",
"optimizing/parallel_move_resolver.cc",
"optimizing/prepare_for_register_allocation.cc",
+ "optimizing/profiling_info_builder.cc",
"optimizing/reference_type_propagation.cc",
"optimizing/register_allocation_resolver.cc",
"optimizing/register_allocator.cc",
- "optimizing/register_allocator_graph_color.cc",
"optimizing/register_allocator_linear_scan.cc",
"optimizing/select_generator.cc",
"optimizing/scheduler.cc",
@@ -122,6 +222,7 @@ art_cc_defaults {
"optimizing/code_generator_arm64.cc",
"optimizing/code_generator_vector_arm64_neon.cc",
"optimizing/code_generator_vector_arm64_sve.cc",
+ "optimizing/jit_patches_arm64.cc",
"optimizing/scheduler_arm64.cc",
"optimizing/instruction_simplifier_arm64.cc",
"optimizing/intrinsics_arm64.cc",
@@ -132,6 +233,12 @@ art_cc_defaults {
},
riscv64: {
srcs: [
+ "jni/quick/riscv64/calling_convention_riscv64.cc",
+ "optimizing/code_generator_riscv64.cc",
+ "optimizing/critical_native_abi_fixup_riscv64.cc",
+ "optimizing/intrinsics_riscv64.cc",
+ "utils/riscv64/assembler_riscv64.cc",
+ "utils/riscv64/jni_macro_assembler_riscv64.cc",
"utils/riscv64/managed_register_riscv64.cc",
],
},
@@ -163,14 +270,7 @@ art_cc_defaults {
],
},
},
- static: {
- cflags: ["-DART_STATIC_LIBART_COMPILER"],
- },
generated_sources: ["art_compiler_operator_srcs"],
- shared_libs: [
- "libbase",
- "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib.
- ],
header_libs: [
"art_cmdlineparser_headers", // For compiler_options.
"art_disassembler_headers",
@@ -178,8 +278,6 @@ art_cc_defaults {
],
export_include_dirs: ["."],
- // Not using .map.txt because this is an internal API
- version_script: "libart-compiler.map",
}
cc_defaults {
@@ -204,41 +302,12 @@ gensrcs {
output_extension: "operator_out.cc",
}
-art_cc_library {
+art_cc_library_static {
name: "libart-compiler",
defaults: [
"libart-compiler-defaults",
- "dex2oat-pgo-defaults",
- "art_hugepage_defaults",
- ],
- codegen: {
- arm: {
- // VIXL assembly support for ARM targets.
- static_libs: [
- "libvixl",
- ],
- },
- arm64: {
- // VIXL assembly support for ARM64 targets.
- static_libs: [
- "libvixl",
- ],
- },
- },
- shared_libs: [
- "libart",
- "libartbase",
- "libartpalette",
- "libprofile",
- "libdexfile",
- ],
- static_libs: ["libelffile"],
- runtime_libs: [
- // `art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` may dynamically load
- // `libart-disassembler.so`.
- "libart-disassembler",
+ "libart-compiler_deps",
],
-
target: {
android: {
lto: {
@@ -253,12 +322,22 @@ art_cc_library {
],
}
+// For static linking with gtests. Same as `libart-compiler`, but without LTO.
+// When gtests static link a library with LTO enabled, they are also built with LTO.
+// This makes the build process use a lot of memory. b/277207452
+art_cc_library_static {
+ name: "libart-compiler-for-test",
+ defaults: [
+ "libart-compiler-defaults",
+ "libart-compiler_deps",
+ ],
+}
+
cc_defaults {
name: "libart-compiler_static_defaults",
defaults: [
"libart-compiler_static_base_defaults",
"libart-disassembler_static_defaults",
- "libart_static_defaults",
"libartbase_static_defaults",
"libdexfile_static_defaults",
"libprofile_static_defaults",
@@ -266,48 +345,28 @@ cc_defaults {
whole_static_libs: ["libart-compiler"],
}
-art_cc_library {
+// libart-compiler_static_defaults for standalone gtests.
+// Uses libart-for-test_static_defaults instead of libart_static_defaults.
+// Uses libart-compiler-for-test instead of libart-compiler.
+cc_defaults {
+ name: "libart-compiler-for-test_static_defaults",
+ defaults: [
+ "libart-compiler_static_base_defaults",
+ "libart-disassembler_static_defaults",
+ "libartbase_static_defaults",
+ "libdexfile_static_defaults",
+ "libprofile_static_defaults",
+ ],
+ whole_static_libs: ["libart-compiler-for-test"],
+}
+
+art_cc_library_static {
name: "libartd-compiler",
defaults: [
"art_debug_defaults",
"libart-compiler-defaults",
+ "libartd-compiler_deps",
],
- codegen: {
- arm: {
- // VIXL assembly support for ARM targets.
- static_libs: [
- "libvixld",
- ],
- // Export vixl headers as they are included in this library's headers used by tests.
- export_static_lib_headers: [
- "libvixld",
- ],
- },
- arm64: {
- // VIXL assembly support for ARM64 targets.
- static_libs: [
- "libvixld",
- ],
- // Export vixl headers as they are included in this library's headers used by tests.
- export_static_lib_headers: [
- "libvixld",
- ],
- },
- },
- shared_libs: [
- "libartbased",
- "libartd",
- "libartpalette",
- "libprofiled",
- "libdexfiled",
- ],
- static_libs: ["libelffiled"],
- runtime_libs: [
- // `art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` may dynamically load
- // `libartd-disassembler.so`.
- "libartd-disassembler",
- ],
-
apex_available: [
"com.android.art.debug",
// TODO(b/183882457): This lib doesn't go into com.android.art, but
@@ -323,49 +382,68 @@ cc_defaults {
"libart-compiler_static_base_defaults",
"libartbased_static_defaults",
"libartd-disassembler_static_defaults",
- "libartd_static_defaults",
"libdexfiled_static_defaults",
"libprofiled_static_defaults",
],
whole_static_libs: ["libartd-compiler"],
}
+// libartd-compiler_static_defaults for gtests.
+// Uses libartd-for-test_static_defaults instead of libart_static_defaults.
+// Note that `libartd-compiler-for-test` is not required here, because `libartd-compiler`
+// doesn't use LTO.
+cc_defaults {
+ name: "libartd-compiler-for-test_static_defaults",
+ defaults: [
+ "libart-compiler_static_base_defaults",
+ "libartbased_static_defaults",
+ "libartd-disassembler_static_defaults",
+ "libdexfiled_static_defaults",
+ "libprofiled_static_defaults",
+ ],
+ whole_static_libs: ["libartd-compiler"],
+}
+
+// Export headers required by `libart-runtime` to use JIT from `libart-compiler`.
+cc_library_headers {
+ name: "libart-compiler_jit_headers",
+ defaults: ["art_defaults"],
+ host_supported: true,
+ export_include_dirs: ["export"],
+ apex_available: [
+ "com.android.art",
+ "com.android.art.debug",
+ "test_broken_com.android.art",
+ ],
+}
+
// Properties common to `libart-compiler-gtest` and `libartd-compiler-gtest`.
art_cc_defaults {
name: "libart-compiler-gtest-common",
srcs: [
"common_compiler_test.cc",
],
- shared_libs: [
- "libbase",
+ header_libs: [
+ "libart_headers",
],
}
-art_cc_library {
+art_cc_library_static {
name: "libart-compiler-gtest",
defaults: [
"libart-gtest-defaults",
"libart-compiler-gtest-common",
- ],
- shared_libs: [
- "libart-compiler",
- "libart-disassembler",
- "libartbase-art-gtest",
- "libart-runtime-gtest",
+ "libart-compiler-for-test_static_defaults",
],
}
-art_cc_library {
+art_cc_library_static {
name: "libartd-compiler-gtest",
defaults: [
- "libartd-gtest-defaults",
+ "art_debug_defaults",
+ "libart-gtest-defaults",
"libart-compiler-gtest-common",
- ],
- shared_libs: [
- "libartd-compiler",
- "libartd-disassembler",
- "libartbased-art-gtest",
- "libartd-runtime-gtest",
+ "libartd-compiler-for-test_static_defaults",
],
}
@@ -381,7 +459,6 @@ art_cc_defaults {
"jni/jni_compiler_test.cc",
"optimizing/codegen_test.cc",
"optimizing/constant_folding_test.cc",
- "optimizing/execution_subgraph_test.cc",
"optimizing/induction_var_range_test.cc",
"optimizing/load_store_elimination_test.cc",
"optimizing/ssa_test.cc",
@@ -426,13 +503,10 @@ art_cc_defaults {
"utils/atomic_dex_ref_map_test.cc",
"utils/dedupe_set_test.cc",
- "jni/jni_cfi_test.cc",
"optimizing/codegen_test.cc",
- "optimizing/execution_subgraph_test.cc",
"optimizing/instruction_simplifier_test.cc",
"optimizing/load_store_analysis_test.cc",
"optimizing/load_store_elimination_test.cc",
- "optimizing/optimizing_cfi_test.cc",
"optimizing/scheduler_test.cc",
],
@@ -474,11 +548,6 @@ art_cc_defaults {
"libnativehelper_header_only",
],
- shared_libs: [
- "libnativeloader",
- "libunwindstack",
- ],
-
target: {
host: {
shared_libs: [
@@ -496,15 +565,8 @@ art_cc_test {
"art_gtest_defaults",
"art_compiler_tests_defaults",
],
- shared_libs: [
- "libprofiled",
- "libartd-simulator-container",
- "liblzma",
- ],
static_libs: [
- "libartd-compiler",
- "libelffiled",
- "libvixld",
+ "libartd-simulator-container",
],
}
@@ -516,21 +578,8 @@ art_cc_test {
"art_compiler_tests_defaults",
],
data: [":generate-boot-image"],
- shared_libs: [
- "libprofile",
- "liblzma",
- "libartpalette",
- ],
static_libs: [
- // For now, link `libart-simulator-container` statically for simplicity,
- // to save the added complexity to package it in test suites (along with
- // other test artifacts) and install it on device during tests.
- // TODO(b/192070541): Consider linking `libart-simulator-container`
- // dynamically.
"libart-simulator-container",
- "libart-compiler",
- "libelffile",
- "libvixl",
],
test_config: "art_standalone_compiler_tests.xml",
}
@@ -541,6 +590,10 @@ art_cc_test {
defaults: [
"art_gtest_defaults",
],
+ srcs: [
+ "jni/jni_cfi_test.cc",
+ "optimizing/optimizing_cfi_test.cc",
+ ],
tidy_timeout_srcs: [
"utils/x86/assembler_x86_test.cc",
"utils/x86_64/assembler_x86_64_test.cc",
@@ -551,6 +604,12 @@ art_cc_test {
"utils/assembler_thumb_test.cc",
],
},
+ riscv64: {
+ srcs: [
+ "utils/riscv64/assembler_riscv64_test.cc",
+ "utils/riscv64/jni_macro_assembler_riscv64_test.cc",
+ ],
+ },
x86: {
srcs: [
"utils/x86/assembler_x86_test.cc",
@@ -562,12 +621,7 @@ art_cc_test {
],
},
},
- shared_libs: [
- "liblzma",
- ],
static_libs: [
- "libartd-compiler",
- "libelffiled",
"libvixld",
],
}