# Copyright (c) 2021-2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//arkcompiler/runtime_core/static_core/ark_config.gni") import("//arkcompiler/runtime_core/static_vm_config.gni") import("//build/ohos.gni") import("$ark_root/irtoc/irtoc.gni") import("$ark_root/plugins/plugins.gni") group("libarktscompiler_package") { deps = [] if (enable_static_vm) { deps += [ ":libarktscompiler_frontend_static" ] } } config("arkcompiler_public_config") { include_dirs = [ "$ark_root_gen_dir", "$ark_root/compiler", "$ark_root/compiler/code_info", "$ark_root/compiler/optimizer/ir", "$target_gen_dir/generated", get_label_info("$ark_root/cross_values:cross_values_getters_generate", "target_gen_dir"), get_label_info("$ark_root/runtime:plugins_defines_h", "target_gen_dir") + "/asm_defines/generated", get_label_info( "$ark_root_gen_dir/cross_values:cross_values_getters_generate", "target_gen_dir"), ] include_dirs += platform_include_dirs defines = [] if (enable_bytecode_optimizer && plugin_enable_bytecode_optimizer) { defines += [ "ENABLE_BYTECODE_OPT" ] } cflags_cc = [] if (target_cpu == "x64" || target_cpu == "x86_64") { defines += [ "PANDA_COMPILER_TARGET_X86_64" ] } else if (target_cpu == "arm64") { defines += [ "PANDA_COMPILER_TARGET_AARCH64" ] } else if (target_cpu == "arm") { defines += [ "PANDA_COMPILER_TARGET_AARCH32" ] } configs = [] if (enable_codegen) { configs += [ "$ark_root/compiler/optimizer/code_generator:arkencoder_config" ] } } libarkcompiler_sources = [ "compiler_logger.cpp", "compiler_options.cpp", "optimizer/analysis/alias_analysis.cpp", "optimizer/analysis/bounds_analysis.cpp", "optimizer/analysis/catch_inputs.cpp", "optimizer/analysis/countable_loop_parser.cpp", "optimizer/analysis/dominators_tree.cpp", "optimizer/analysis/linear_order.cpp", "optimizer/analysis/live_registers.cpp", "optimizer/analysis/liveness_analyzer.cpp", "optimizer/analysis/liveness_use_table.cpp", "optimizer/analysis/loop_analyzer.cpp", "optimizer/analysis/monitor_analysis.cpp", "optimizer/analysis/object_type_propagation.cpp", "optimizer/analysis/reg_alloc_verifier.cpp", "optimizer/analysis/rpo.cpp", "optimizer/analysis/types_analysis.cpp", "optimizer/ir/analysis.cpp", "optimizer/ir/aot_data.cpp", "optimizer/ir/basicblock.cpp", "optimizer/ir/dump.cpp", "optimizer/ir/graph.cpp", "optimizer/ir/graph_checker.cpp", "optimizer/ir/graph_cloner.cpp", "optimizer/ir/inst.cpp", "optimizer/ir/locations.cpp", "optimizer/ir/loop_unswitcher.cpp", "optimizer/ir/visualizer_printer.cpp", "optimizer/ir_builder/inst_builder.cpp", "optimizer/ir_builder/ir_builder.cpp", "optimizer/optimizations/adjust_arefs.cpp", "optimizer/optimizations/balance_expressions.cpp", "optimizer/optimizations/branch_elimination.cpp", "optimizer/optimizations/checks_elimination.cpp", "optimizer/optimizations/cleanup.cpp", "optimizer/optimizations/code_sink.cpp", "optimizer/optimizations/condition_chain_cache.cpp", "optimizer/optimizations/condition_chain_manager.cpp", "optimizer/optimizations/const_folding.cpp", "optimizer/optimizations/cse.cpp", "optimizer/optimizations/deoptimize_elimination.cpp", "optimizer/optimizations/escape.cpp", "optimizer/optimizations/if_conversion.cpp", "optimizer/optimizations/if_merging.cpp", "optimizer/optimizations/inline_intrinsics.cpp", "optimizer/optimizations/inlining.cpp", "optimizer/optimizations/licm.cpp", "optimizer/optimizations/licm_conditions.cpp", "optimizer/optimizations/locations_builder.cpp", "optimizer/optimizations/loop_idioms.cpp", "optimizer/optimizations/loop_peeling.cpp", "optimizer/optimizations/loop_unroll.cpp", "optimizer/optimizations/loop_unswitch.cpp", "optimizer/optimizations/lowering.cpp", "optimizer/optimizations/lse.cpp", "optimizer/optimizations/memory_barriers.cpp", "optimizer/optimizations/memory_coalescing.cpp", "optimizer/optimizations/move_constants.cpp", "optimizer/optimizations/object_type_check_elimination.cpp", "optimizer/optimizations/peepholes.cpp", "optimizer/optimizations/phi_type_resolving.cpp", "optimizer/optimizations/redundant_loop_elimination.cpp", "optimizer/optimizations/regalloc/cleanup_empty_blocks.cpp", "optimizer/optimizations/regalloc/interference_graph.cpp", "optimizer/optimizations/regalloc/reg_alloc.cpp", "optimizer/optimizations/regalloc/reg_alloc_base.cpp", "optimizer/optimizations/regalloc/reg_alloc_graph_coloring.cpp", "optimizer/optimizations/regalloc/reg_alloc_linear_scan.cpp", "optimizer/optimizations/regalloc/reg_alloc_resolver.cpp", "optimizer/optimizations/regalloc/reg_alloc_stat.cpp", "optimizer/optimizations/regalloc/reg_map.cpp", "optimizer/optimizations/regalloc/spill_fills_resolver.cpp", "optimizer/optimizations/regalloc/split_resolver.cpp", "optimizer/optimizations/scheduler.cpp", "optimizer/optimizations/simplify_string_builder.cpp", "optimizer/optimizations/try_catch_resolving.cpp", "optimizer/optimizations/vn.cpp", "optimizer/pass.cpp", "optimizer/pass_manager.cpp", "optimizer/pass_manager_statistics.cpp", ] libarkcompiler_sources += plugin_libarkcompiler_sources if (!is_win && !is_mac && !is_mingw) { libarkcompiler_sources += [ "code_info/code_info.cpp", "code_info/code_info_builder.cpp", "compile_method.cpp", "optimizer/code_generator/codegen.cpp", "optimizer/code_generator/codegen_native.cpp", "optimizer/code_generator/disassembly.cpp", "optimizer/code_generator/method_properties.cpp", "optimizer/code_generator/slow_path.cpp", "optimizer/code_generator/spill_fill_encoder.cpp", "optimizer/pipeline.cpp", ] } libarkcompiler_sources += [ "$target_gen_dir/generated/inst_builder_gen.cpp" ] libarkcompiler_configs = [ sdk_libc_secshared_config, ":arkcompiler_public_config", "$ark_root:ark_config", "$ark_root/libpandabase:arkbase_public_config", "$ark_root/libpandafile:arkfile_public_config", "$ark_root/runtime:arkruntime_public_config", ] ohos_shared_library("libarktscompiler") { sources = libarkcompiler_sources configs = libarkcompiler_configs deps = [ ":codegen_language_extensions_h", ":compiler_events_gen_h", ":compiler_interface_extensions_inl_h", ":compiler_logger_components_inc", ":compiler_options_gen_h", ":cpu_features_gen_inc", ":inst_builder_extensions_inl_h", ":intrinsics_can_encode_inl", ":intrinsics_codegen_ext_inl_h", ":intrinsics_extensions_inl_h", ":intrinsics_graph_checker_inl", ":intrinsics_inline_inl_h", ":intrinsics_inline_native_method_inl", ":intrinsics_ir_build_inl_h", ":intrinsics_ir_build_static_call_inl", ":intrinsics_ir_build_virtual_call_inl", ":intrinsics_lse_heap_inv_args_inl", ":intrinsics_peephole_inl_h", ":ir_dyn_base_types_h", ":isa_gen_libarkcompiler_inst_builder_gen_cpp", ":libarkcompiler_intrinsics_gen_inl_can_encode_builtin_inl", ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_graph_inl", ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_inst_inl", ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_inl", ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_names_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsic_codegen_test_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsic_flags_test_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl_h", ":libarkcompiler_intrinsics_gen_inl_intrinsics_enum_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_flags_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_inline_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_ir_build_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_peephole_inl", ":libarkcompiler_opcodes_h_IR-instructions_md", ":libarkcompiler_opcodes_h_arch_info_gen_h", ":libarkcompiler_opcodes_h_codegen_arm64_gen_inc", ":libarkcompiler_opcodes_h_deoptimize_elimination_call_visitors_inl", ":libarkcompiler_opcodes_h_inst_checker_gen_h", ":libarkcompiler_opcodes_h_opcodes_h", ":source_languages_h", "$ark_root/cross_values:cross_values_getters_generate(${default_toolchain})", "$ark_root/libpandabase:libarktsbase", "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction-inl_gen_h", "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction_enum_gen_h", "$ark_root/libpandafile:libarkfile_type_gen_h", "$ark_root/libpandafile:libarktsfile", "$ark_root/runtime:arkruntime_gen_entrypoints_compiler_checksum_entrypoints_compiler_checksum_inl", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_compiler_inl", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_S", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_enum_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_gen_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_h", "$ark_root/runtime:arkruntime_gen_intrinsics_unimplemented_intrinsics-inl_cpp", "$ark_root/runtime:plugins_entrypoints_gen_h", "$ark_root/runtime/asm_defines:asm_defines_generator", sdk_libc_secshared_dep, ] if (enable_irtoc) { deps += [ ":irtoc_builder_cpp", ":irtoc_generate_ir_inline", ":irtoc_interface_extensions_inl_h", ] } if (enable_codegen) { deps += [ "$ark_root/compiler/optimizer/code_generator:libarkencoder" ] } deps += plugin_compiler_deps include_dirs = [ "$ark_root/compiler/optimizer", "$ark_root/compiler/optimizer/code_generator", ] output_extension = "so" part_name = ark_part_name subsystem_name = "$ark_subsystem_name" } ohos_source_set("libarktscompiler_frontend_static") { sources = libarkcompiler_sources configs = libarkcompiler_configs deps = [ ":codegen_language_extensions_h", ":compiler_events_gen_h", ":compiler_interface_extensions_inl_h", ":compiler_logger_components_inc", ":compiler_options_gen_h", ":cpu_features_gen_inc", ":inst_builder_extensions_inl_h", ":intrinsics_can_encode_inl", ":intrinsics_codegen_ext_inl_h", ":intrinsics_extensions_inl_h", ":intrinsics_graph_checker_inl", ":intrinsics_inline_inl_h", ":intrinsics_inline_native_method_inl", ":intrinsics_ir_build_inl_h", ":intrinsics_ir_build_static_call_inl", ":intrinsics_ir_build_virtual_call_inl", ":intrinsics_lse_heap_inv_args_inl", ":intrinsics_peephole_inl_h", ":ir_dyn_base_types_h", ":isa_gen_libarkcompiler_inst_builder_gen_cpp", ":libarkcompiler_intrinsics_gen_inl_can_encode_builtin_inl", ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_graph_inl", ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_inst_inl", ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_inl", ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_names_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsic_codegen_test_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsic_flags_test_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl_h", ":libarkcompiler_intrinsics_gen_inl_intrinsics_enum_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_flags_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_inline_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_ir_build_inl", ":libarkcompiler_intrinsics_gen_inl_intrinsics_peephole_inl", ":libarkcompiler_opcodes_h_IR-instructions_md", ":libarkcompiler_opcodes_h_arch_info_gen_h", ":libarkcompiler_opcodes_h_codegen_arm64_gen_inc", ":libarkcompiler_opcodes_h_deoptimize_elimination_call_visitors_inl", ":libarkcompiler_opcodes_h_inst_checker_gen_h", ":libarkcompiler_opcodes_h_opcodes_h", ":source_languages_h", "$ark_root/cross_values:cross_values_getters_generate(${default_toolchain})", "$ark_root/libpandabase:libarktsbase_frontend_static", "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction-inl_gen_h", "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction_enum_gen_h", "$ark_root/libpandafile:libarkfile_type_gen_h", "$ark_root/libpandafile:libarktsfile_frontend_static", "$ark_root/runtime:arkruntime_gen_entrypoints_compiler_checksum_entrypoints_compiler_checksum_inl", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_compiler_inl", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_S", "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_enum_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_gen_h", "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_h", "$ark_root/runtime:arkruntime_gen_intrinsics_unimplemented_intrinsics-inl_cpp", "$ark_root/runtime:plugins_entrypoints_gen_h", "$ark_root/runtime/asm_defines:asm_defines_generator", sdk_libc_secshared_dep, ] if (enable_irtoc) { deps += [ ":irtoc_builder_cpp", ":irtoc_generate_ir_inline", ":irtoc_interface_extensions_inl_h", ] } if (enable_codegen) { deps += [ "$ark_root/compiler/optimizer/code_generator:libarkencoder_frontend_static" ] } deps += plugin_compiler_deps include_dirs = [ "$ark_root/compiler/optimizer", "$ark_root/compiler/optimizer/code_generator", ] part_name = ark_part_name subsystem_name = ark_subsystem_name } copy("copy_inst_builder_gen_cpp_erb") { sources = [ "optimizer/templates/inst_builder_gen.cpp.erb" ] outputs = [ "$target_gen_dir/generated/inst_builder_gen.cpp.erb" ] } ark_isa_gen("isa_gen_libarkcompiler") { template_files = [ "inst_builder_gen.cpp.erb" ] sources = "$target_gen_dir/generated" destination = "$target_gen_dir/generated" extra_dependencies = [ ":copy_inst_builder_gen_cpp_erb", "$ark_root:concat_inst_templates_yamls", ] } ark_gen("libarkcompiler_intrinsics_gen_inl") { data = "$target_gen_dir/../runtime/intrinsics.yaml" template_files = [ "intrinsics_enum.inl.erb", "get_intrinsics.inl.erb", "entrypoints_bridge_asm_macro.inl.erb", "intrinsics_ir_build.inl.erb", "get_intrinsics_names.inl.erb", "generate_operations_intrinsic_inst.inl.erb", "generate_operations_intrinsic_graph.inl.erb", "intrinsic_codegen_test.inl.erb", "intrinsic_flags_test.inl.erb", "can_encode_builtin.inl.erb", "intrinsics_codegen.inl.h.erb", "intrinsics_codegen.inl.erb", "intrinsics_flags.inl.erb", "intrinsics_inline.inl.erb", "intrinsics_peephole.inl.erb", ] sources = "optimizer/templates/intrinsics" destination = "$target_gen_dir/generated" requires = [ "$ark_root/compiler/optimizer/templates/intrinsics/compiler_intrinsics.rb", ] extra_dependencies = [ "$ark_root/runtime:arkruntime_gen_intrinsics_yaml" ] } ark_gen("libarkcompiler_opcodes_h") { data = "$ark_root/compiler/optimizer/ir/instructions.yaml" template_files = [ "opcodes.h.erb", "arch_info_gen.h.erb", "inst_checker_gen.h.erb", "IR-instructions.md.erb", "codegen_arm64_gen.inc.erb", "deoptimize_elimination_call_visitors.inl.erb", ] sources = "optimizer/templates" destination = "$target_gen_dir/generated" requires = [ "$ark_root/compiler/optimizer/templates/instructions.rb" ] } ark_gen_file("compiler_options_gen_h") { template_file = "$ark_root/templates/options/options.h.erb" data_file = "$target_gen_dir/generated/compiler_options.yaml" requires = [ "$ark_root/templates/common.rb" ] output_file = "$target_gen_dir/generated/compiler_options_gen.h" extra_dependencies = [ "$ark_root:merge_compiler_options_yamls" ] } ark_gen_file("cpu_features_gen_inc") { template_file = "$ark_root/templates/cpu_features.inc.erb" data_file = "compiler.yaml" requires = [ "$ark_root/templates/common.rb" ] output_file = "$target_gen_dir/generated/cpu_features.inc" } ark_gen_file("compiler_events_gen_h") { template_file = "$ark_root/templates/events/events.h.erb" data_file = "compiler.yaml" requires = [ "$ark_root/templates/common.rb" ] output_file = "$target_gen_dir/generated/compiler_events_gen.h" } ark_gen_file("compiler_logger_components_inc") { template_file = "$ark_root/templates/logger_components/logger_components.inc.erb" data_file = "compiler.yaml" requires = [ "$ark_root/templates/common.rb" ] output_file = "$target_gen_dir/generated/compiler_logger_components.inc" } ark_gen_file("intrinsics_codegen_ext_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_codegen_ext.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_codegen_ext.inl.h" } ark_gen_file("intrinsics_inline_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_inline.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_inline.inl.h" } ark_gen_file("intrinsics_inline_native_method_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_inline_native_method.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_inline_native_method.inl" } ark_gen_file("intrinsics_peephole_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_peephole.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_peephole.inl.h" } ark_gen_file("intrinsics_graph_checker_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_graph_checker.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_graph_checker.inl" } ark_gen_file("intrinsics_ir_build_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_ir_build.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_ir_build.inl.h" } ark_gen_file("intrinsics_ir_build_static_call_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_ir_build_static_call.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_ir_build_static_call.inl" } ark_gen_file("intrinsics_ir_build_virtual_call_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_ir_build_virtual_call.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_ir_build_virtual_call.inl" } ark_gen_file("intrinsics_can_encode_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_can_encode.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_can_encode.inl" } ark_gen_file("intrinsics_lse_heap_inv_args_inl") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics/intrinsics_lse_heap_inv_args.inl.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_lse_heap_inv_args.inl" } ark_gen_file("ir_dyn_base_types_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/ir-dyn-base-types.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/ir-dyn-base-types.h" } ark_gen_file("source_languages_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/source_languages.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/source_languages.h" } ark_gen_file("codegen_language_extensions_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/codegen_language_extensions.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/codegen_language_extensions.h" } ark_gen_file("compiler_interface_extensions_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/compiler_interface_extensions.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/compiler_interface_extensions.inl.h" } ark_gen_file("inst_builder_extensions_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/inst_builder_extensions.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/inst_builder_extensions.inl.h" } ark_gen_file("intrinsics_extensions_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/intrinsics_extensions.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/intrinsics_extensions.inl.h" } if (enable_irtoc) { ark_gen_file("irtoc_interface_extensions_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/irtoc_interface_extensions.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/irtoc_interface_extensions.inl.h" } ark_gen_file("irtoc_interface_extensions_includes_inl_h") { extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] template_file = "optimizer/templates/irtoc_interface_extensions_includes.inl.h.erb" data_file = "$ark_plugin_options_yaml" requires = [ "$ark_root/templates/plugin_options.rb" ] output_file = "$target_gen_dir/generated/irtoc_interface_extensions_includes.inl.h" } action("irtoc_builder_cpp") { script = "$ark_root/irtoc/lang/irtoc.rb" outputs = [ "$target_gen_dir/generated/irtoc_builder.cpp" ] working_dir = "$root_build_dir/irtoc_builder_cpp" args = [ "--input", rebase_path("$ark_root/irtoc/scripts/interpreter.irt", working_dir), "--output", rebase_path("$target_gen_dir/generated/irtoc_builder.cpp", working_dir), "--ark_source_dir", rebase_path("$ark_root", working_dir), "--isa", rebase_path("$ark_isa_yaml", working_dir), "--definitions", "NDEBUG", "--arch", target_cpu, "--ir-api", "ir-builder", "--plugins", rebase_path(irtoc_plugins_file, working_dir), "--working-dir", rebase_path(working_dir, root_build_dir), ] deps = [ "$ark_root/irtoc:irtoc_plugins_file", "$ark_root/isa:isa_combine", "$ark_root/runtime:plugins_asm_defines_def", "$ark_root/runtime:plugins_defines_h", ] } action("irtoc_generate_ir_inline") { script = "$ark_root/irtoc/lang/irtoc.rb" outputs = [ "$target_gen_dir/generated/irtoc_ir_inline.h" ] working_dir = "$root_build_dir/irtoc_generate_ir_inline" args = [ "--input", rebase_path("$ark_root/irtoc/scripts/interpreter.irt", working_dir), "--output", rebase_path("$target_gen_dir/generated/irtoc_ir_inline.h", working_dir), "--ark_source_dir", rebase_path("$ark_root", working_dir), "--isa", rebase_path("$ark_isa_yaml", working_dir), "--definitions", "NDEBUG", "--arch", target_cpu, "--ir-api", "ir-inline", "--plugins", rebase_path(irtoc_plugins_file, working_dir), "--working-dir", rebase_path(working_dir, root_build_dir), ] deps = [ "$ark_root/isa:isa_combine", "$ark_root/runtime:plugins_asm_defines_def", "$ark_root/runtime:plugins_defines_h", ] } }