1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//arkcompiler/runtime_core/ark_config.gni") 15config("arkcompiler_public_config") { 16 include_dirs = [ 17 "$ark_root/compiler", 18 "$ark_root/compiler/code_info", 19 "$ark_root/compiler/optimizer/ir", 20 "$target_gen_dir/generated", 21 get_label_info("$ark_root/cross_values:cross_values_getters_generate", 22 "target_gen_dir"), 23 get_label_info("$ark_root/runtime:plugins_defines_h", "target_gen_dir") + 24 "/asm_defines/generated", 25 ] 26 27 include_dirs += platform_include_dirs 28 29 if (enable_bytecode_optimizer && !ark_standalone_build) { 30 defines = [ "ENABLE_BYTECODE_OPT" ] 31 } 32 33 is_x64 = 34 current_cpu == "amd64" || current_cpu == "x64" || current_cpu == "x86_64" 35 36 cflags_cc = [] 37 if (is_x64 || current_cpu == "arm64") { 38 if (!is_mingw) { 39 cflags_cc += [ 40 "-DPANDA_COMPILER_TARGET_AARCH64", 41 "-DUSE_VIXL_ARM64", 42 ] 43 } 44 } 45 if (ark_enable_compiler_x64) { 46 cflags_cc += [ "-DPANDA_COMPILER_TARGET_X86_64" ] 47 } 48} 49 50libarkcompiler_sources = [ 51 "compiler_logger.cpp", 52 "compiler_options.cpp", 53 "optimizer/analysis/alias_analysis.cpp", 54 "optimizer/analysis/bounds_analysis.cpp", 55 "optimizer/analysis/countable_loop_parser.cpp", 56 "optimizer/analysis/dominators_tree.cpp", 57 "optimizer/analysis/linear_order.cpp", 58 "optimizer/analysis/live_registers.cpp", 59 "optimizer/analysis/liveness_analyzer.cpp", 60 "optimizer/analysis/liveness_use_table.cpp", 61 "optimizer/analysis/loop_analyzer.cpp", 62 "optimizer/analysis/object_type_propagation.cpp", 63 "optimizer/analysis/rpo.cpp", 64 "optimizer/analysis/types_analysis.cpp", 65 "optimizer/ir/analysis.cpp", 66 "optimizer/ir/aot_data.cpp", 67 "optimizer/ir/basicblock.cpp", 68 "optimizer/ir/dump.cpp", 69 "optimizer/ir/graph.cpp", 70 "optimizer/ir/graph_checker.cpp", 71 "optimizer/ir/graph_cloner.cpp", 72 "optimizer/ir/inst.cpp", 73 "optimizer/ir/locations.cpp", 74 "optimizer/ir_builder/inst_builder.cpp", 75 "optimizer/ir_builder/ir_builder.cpp", 76 "optimizer/optimizations/adjust_arefs.cpp", 77 "optimizer/optimizations/balance_expressions.cpp", 78 "optimizer/optimizations/cleanup.cpp", 79 "optimizer/optimizations/code_sink.cpp", 80 "optimizer/optimizations/deoptimize_elimination.cpp", 81 "optimizer/optimizations/if_conversion.cpp", 82 "optimizer/optimizations/loop_peeling.cpp", 83 "optimizer/optimizations/loop_unroll.cpp", 84 "optimizer/optimizations/lowering.cpp", 85 "optimizer/optimizations/memory_barriers.cpp", 86 "optimizer/optimizations/memory_coalescing.cpp", 87 "optimizer/optimizations/move_constants.cpp", 88 "optimizer/optimizations/object_type_check_elimination.cpp", 89 "optimizer/optimizations/redundant_loop_elimination.cpp", 90 "optimizer/optimizations/regalloc/interference_graph.cpp", 91 "optimizer/optimizations/regalloc/reg_alloc.cpp", 92 "optimizer/optimizations/regalloc/reg_alloc_base.cpp", 93 "optimizer/optimizations/regalloc/reg_alloc_graph_coloring.cpp", 94 "optimizer/optimizations/regalloc/reg_alloc_resolver.cpp", 95 "optimizer/optimizations/regalloc/reg_alloc_stat.cpp", 96 "optimizer/optimizations/regalloc/reg_map.cpp", 97 "optimizer/optimizations/regalloc/spill_fills_resolver.cpp", 98 "optimizer/optimizations/regalloc/split_resolver.cpp", 99 "optimizer/optimizations/scheduler.cpp", 100 "optimizer/optimizations/try_catch_resolving.cpp", 101 "optimizer/optimizations/types_resolving.cpp", 102 "optimizer/optimizations/vn.cpp", 103 "optimizer/pass.cpp", 104 "optimizer/pass_manager.cpp", 105 "optimizer/pass_manager_statistics.cpp", 106] 107 108plugin_irts = [] 109foreach(plugin, enabled_plugins) { 110 print("add compiler plugin: $plugin") 111 plugin_dir = "$ark_root/plugins/$plugin" 112 113 source_files = read_file("$plugin_dir/subproject_sources.gn", "scope") 114 if (defined(source_files.srcs_compiler_path)) { 115 source_file = "$plugin_dir/${source_files.srcs_compiler_path}" 116 src_scope = read_file(source_file, "scope") 117 if (defined(src_scope.srcs)) { 118 foreach(src, src_scope.srcs) { 119 libarkcompiler_sources += [ "$plugin_dir/compiler/$src" ] 120 } 121 } 122 123 if (defined(source_files.irtoc_plugins)) { 124 scripts = read_file("$plugin_dir/${source_files.irtoc_plugins}", "scope") 125 foreach(script, scripts.srcs) { 126 plugin_irts += 127 [ rebase_path("$plugin_dir/irtoc_scripts/$script", ark_root) ] 128 } 129 } 130 131 src_scope = { 132 } 133 } 134 source_files = [] 135} 136 137libarkcompiler_sources += [ "$target_gen_dir/generated/inst_builder_gen.cpp" ] 138 139libarkcompiler_configs = [ 140 sdk_libc_secshared_config, 141 ":arkcompiler_public_config", 142 "$ark_root:ark_config", 143 "$ark_root/libpandabase:arkbase_public_config", 144 "$ark_root/libpandafile:arkfile_public_config", 145 "$ark_root/runtime:arkruntime_public_config", 146] 147 148ohos_shared_library("libarkcompiler") { 149 sources = libarkcompiler_sources 150 151 configs = libarkcompiler_configs 152 153 deps = [ 154 ":codegen_language_extensions_h", 155 ":compiler_events_gen_h", 156 ":compiler_interface_extensions_inl_h", 157 ":compiler_logger_components_inc", 158 ":compiler_options_gen_h", 159 ":cpu_features_gen_inc", 160 ":intrinsics_can_encode_inl", 161 ":intrinsics_codegen_ext_inl_h", 162 ":intrinsics_inline_inl", 163 ":intrinsics_ir_build_inl_h", 164 ":intrinsics_ir_build_static_call_inl", 165 ":intrinsics_ir_build_virtual_call_inl", 166 ":intrinsics_stub_inl", 167 ":intrinsics_stub_inl_h", 168 ":intrinsics_types_resolving_inl_h", 169 ":ir_dyn_base_types_h", 170 ":irtoc_builder_cpp", 171 ":irtoc_generate_ir_inline", 172 ":isa_gen_libarkcompiler_inst_builder_gen_cpp", 173 ":libarkcompiler_ecma_intrinsics_enum_inl", 174 ":libarkcompiler_generate_ecma_inl", 175 ":libarkcompiler_intrinsics_gen_inl_can_encode_builtin_inl", 176 ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_graph_inl", 177 ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_inst_inl", 178 ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_inl", 179 ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_names_inl", 180 ":libarkcompiler_intrinsics_gen_inl_intrinsic_codegen_test_inl", 181 ":libarkcompiler_intrinsics_gen_inl_intrinsic_flags_test_inl", 182 ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl", 183 ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl_h", 184 ":libarkcompiler_intrinsics_gen_inl_intrinsics_enum_inl", 185 ":libarkcompiler_intrinsics_gen_inl_intrinsics_flags_inl", 186 ":libarkcompiler_intrinsics_gen_inl_intrinsics_ir_build_inl", 187 ":libarkcompiler_opcodes_h_IR-instructions_md", 188 ":libarkcompiler_opcodes_h_arch_info_gen_h", 189 ":libarkcompiler_opcodes_h_codegen_arm64_gen_inc", 190 ":libarkcompiler_opcodes_h_deoptimize_elimination_call_visitors_inl", 191 ":libarkcompiler_opcodes_h_inst_checker_gen_h", 192 ":libarkcompiler_opcodes_h_opcodes_h", 193 ":source_languages_h", 194 "$ark_root/cross_values:cross_values_getters_generate(${default_toolchain})", 195 "$ark_root/libpandabase:libarkbase", 196 "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction-inl_gen_h", 197 "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction_enum_gen_h", 198 "$ark_root/libpandafile:libarkfile", 199 "$ark_root/libpandafile:libarkfile_type_gen_h", 200 "$ark_root/runtime:arkruntime_gen_entrypoints_compiler_checksum_entrypoints_compiler_checksum_inl", 201 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_compiler_inl", 202 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_S", 203 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_h", 204 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_enum_h", 205 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_gen_h", 206 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_h", 207 "$ark_root/runtime:arkruntime_gen_intrinsics_unimplemented_intrinsics-inl_cpp", 208 "$ark_root/runtime:plugins_entrypoints_gen_h", 209 "$ark_root/runtime/asm_defines:asm_defines_generator", 210 sdk_libc_secshared_dep, 211 ] 212 213 include_dirs = [ "$ark_root/compiler/optimizer" ] 214 215 output_extension = "so" 216 relative_install_dir = "ark" 217 part_name = "runtime_core" 218 subsystem_name = "arkcompiler" 219} 220 221ohos_static_library("libarkcompiler_frontend_static") { 222 sources = libarkcompiler_sources 223 224 configs = libarkcompiler_configs 225 226 deps = [ 227 ":codegen_language_extensions_h", 228 ":compiler_events_gen_h", 229 ":compiler_interface_extensions_inl_h", 230 ":compiler_logger_components_inc", 231 ":compiler_options_gen_h", 232 ":cpu_features_gen_inc", 233 ":intrinsics_can_encode_inl", 234 ":intrinsics_codegen_ext_inl_h", 235 ":intrinsics_inline_inl", 236 ":intrinsics_ir_build_inl_h", 237 ":intrinsics_ir_build_static_call_inl", 238 ":intrinsics_ir_build_virtual_call_inl", 239 ":intrinsics_stub_inl", 240 ":intrinsics_stub_inl_h", 241 ":intrinsics_types_resolving_inl_h", 242 ":ir_dyn_base_types_h", 243 ":irtoc_builder_cpp", 244 ":irtoc_generate_ir_inline", 245 ":isa_gen_libarkcompiler_inst_builder_gen_cpp", 246 ":libarkcompiler_ecma_intrinsics_enum_inl", 247 ":libarkcompiler_generate_ecma_inl", 248 ":libarkcompiler_intrinsics_gen_inl_can_encode_builtin_inl", 249 ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_graph_inl", 250 ":libarkcompiler_intrinsics_gen_inl_generate_operations_intrinsic_inst_inl", 251 ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_inl", 252 ":libarkcompiler_intrinsics_gen_inl_get_intrinsics_names_inl", 253 ":libarkcompiler_intrinsics_gen_inl_intrinsic_codegen_test_inl", 254 ":libarkcompiler_intrinsics_gen_inl_intrinsic_flags_test_inl", 255 ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl", 256 ":libarkcompiler_intrinsics_gen_inl_intrinsics_codegen_inl_h", 257 ":libarkcompiler_intrinsics_gen_inl_intrinsics_enum_inl", 258 ":libarkcompiler_intrinsics_gen_inl_intrinsics_flags_inl", 259 ":libarkcompiler_intrinsics_gen_inl_intrinsics_ir_build_inl", 260 ":libarkcompiler_opcodes_h_IR-instructions_md", 261 ":libarkcompiler_opcodes_h_arch_info_gen_h", 262 ":libarkcompiler_opcodes_h_codegen_arm64_gen_inc", 263 ":libarkcompiler_opcodes_h_deoptimize_elimination_call_visitors_inl", 264 ":libarkcompiler_opcodes_h_inst_checker_gen_h", 265 ":libarkcompiler_opcodes_h_opcodes_h", 266 ":source_languages_h", 267 "$ark_root/cross_values:cross_values_getters_generate(${default_toolchain})", 268 "$ark_root/libpandabase:libarkbase_frontend_static", 269 "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction-inl_gen_h", 270 "$ark_root/libpandafile:isa_gen_libarkfile_bytecode_instruction_enum_gen_h", 271 "$ark_root/libpandafile:libarkfile_frontend_static", 272 "$ark_root/libpandafile:libarkfile_type_gen_h", 273 "$ark_root/runtime:arkruntime_gen_entrypoints_compiler_checksum_entrypoints_compiler_checksum_inl", 274 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_compiler_inl", 275 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_S", 276 "$ark_root/runtime:arkruntime_gen_entrypoints_entrypoints_gen_h", 277 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_enum_h", 278 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_gen_h", 279 "$ark_root/runtime:arkruntime_gen_intrinsics_intrinsics_h", 280 "$ark_root/runtime:arkruntime_gen_intrinsics_unimplemented_intrinsics-inl_cpp", 281 "$ark_root/runtime:plugins_entrypoints_gen_h", 282 "$ark_root/runtime/asm_defines:asm_defines_generator", 283 sdk_libc_secshared_dep, 284 ] 285 286 include_dirs = [ "$ark_root/compiler/optimizer" ] 287} 288 289ark_isa_gen("isa_gen_libarkcompiler") { 290 template_files = [ "inst_builder_gen.cpp.erb" ] 291 sources = "optimizer/templates" 292 destination = "$target_gen_dir/generated" 293} 294 295ark_gen("libarkcompiler_intrinsics_gen_inl") { 296 data = "$target_gen_dir/../runtime/intrinsics.yaml" 297 template_files = [ 298 "intrinsics_enum.inl.erb", 299 "get_intrinsics.inl.erb", 300 "entrypoints_bridge_asm_macro.inl.erb", 301 "intrinsics_ir_build.inl.erb", 302 "get_intrinsics_names.inl.erb", 303 "generate_operations_intrinsic_inst.inl.erb", 304 "generate_operations_intrinsic_graph.inl.erb", 305 "intrinsic_codegen_test.inl.erb", 306 "intrinsic_flags_test.inl.erb", 307 "can_encode_builtin.inl.erb", 308 "intrinsics_codegen.inl.h.erb", 309 "intrinsics_codegen.inl.erb", 310 "intrinsics_flags.inl.erb", 311 ] 312 sources = "optimizer/templates/intrinsics" 313 destination = "$target_gen_dir/generated" 314 requires = [ 315 "$ark_root/compiler/optimizer/templates/intrinsics/compiler_intrinsics.rb", 316 ] 317 extra_dependencies = [ "$ark_root/runtime:arkruntime_gen_intrinsics_yaml" ] 318} 319 320ark_isa_gen("libarkcompiler") { 321 template_files = [ 322 "generate_ecma.inl.erb", 323 "ecma_intrinsics_enum.inl.erb", 324 ] 325 sources = "optimizer/templates" 326 requires = [ "$ark_root//assembler/asm_isapi.rb" ] 327 destination = "$target_gen_dir/generated" 328} 329 330ark_gen("libarkcompiler_opcodes_h") { 331 data = "$ark_root/compiler/optimizer/ir/instructions.yaml" 332 template_files = [ 333 "opcodes.h.erb", 334 "arch_info_gen.h.erb", 335 "inst_checker_gen.h.erb", 336 "IR-instructions.md.erb", 337 "codegen_arm64_gen.inc.erb", 338 "deoptimize_elimination_call_visitors.inl.erb", 339 ] 340 sources = "optimizer/templates" 341 destination = "$target_gen_dir/generated" 342 requires = [ "$ark_root/compiler/optimizer/templates/instructions.rb" ] 343} 344 345ark_gen_file("compiler_options_gen_h") { 346 template_file = "$ark_root/templates/options/options.h.erb" 347 data_file = "compiler.yaml" 348 requires = [ "$ark_root/templates/common.rb" ] 349 output_file = "$target_gen_dir/generated/compiler_options_gen.h" 350} 351 352ark_gen_file("cpu_features_gen_inc") { 353 template_file = "$ark_root/templates/cpu_features.inc.erb" 354 data_file = "compiler.yaml" 355 requires = [ "$ark_root/templates/common.rb" ] 356 output_file = "$target_gen_dir/generated/cpu_features.inc" 357} 358 359ark_gen_file("compiler_events_gen_h") { 360 template_file = "$ark_root/templates/events/events.h.erb" 361 data_file = "compiler.yaml" 362 requires = [ "$ark_root/templates/common.rb" ] 363 output_file = "$target_gen_dir/generated/compiler_events_gen.h" 364} 365 366ark_gen_file("compiler_logger_components_inc") { 367 template_file = 368 "$ark_root/templates/logger_components/logger_components.inc.erb" 369 data_file = "compiler.yaml" 370 requires = [ "$ark_root/templates/common.rb" ] 371 output_file = "$target_gen_dir/generated/compiler_logger_components.inc" 372} 373ark_gen_file("intrinsics_stub_inl") { 374 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 375 template_file = "optimizer/templates/intrinsics/intrinsics_stub.inl.erb" 376 data_file = "$target_gen_dir/../plugin_options.yaml" 377 requires = [ "$ark_root/templates/plugin_options.rb" ] 378 output_file = "$target_gen_dir/generated/intrinsics_stub.inl" 379} 380ark_gen_file("intrinsics_stub_inl_h") { 381 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 382 template_file = "optimizer/templates/intrinsics/intrinsics_stub.inl.h.erb" 383 data_file = "$target_gen_dir/../plugin_options.yaml" 384 requires = [ "$ark_root/templates/plugin_options.rb" ] 385 output_file = "$target_gen_dir/generated/intrinsics_stub.inl.h" 386} 387ark_gen_file("intrinsics_codegen_ext_inl_h") { 388 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 389 template_file = 390 "optimizer/templates/intrinsics/intrinsics_codegen_ext.inl.h.erb" 391 data_file = "$target_gen_dir/../plugin_options.yaml" 392 requires = [ "$ark_root/templates/plugin_options.rb" ] 393 output_file = "$target_gen_dir/generated/intrinsics_codegen_ext.inl.h" 394} 395ark_gen_file("intrinsics_inline_inl") { 396 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 397 template_file = "optimizer/templates/intrinsics/intrinsics_inline.inl.erb" 398 data_file = "$target_gen_dir/../plugin_options.yaml" 399 requires = [ "$ark_root/templates/plugin_options.rb" ] 400 output_file = "$target_gen_dir/generated/intrinsics_inline.inl" 401} 402ark_gen_file("intrinsics_types_resolving_inl_h") { 403 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 404 template_file = 405 "optimizer/templates/intrinsics/intrinsics_types_resolving.inl.h.erb" 406 data_file = "$target_gen_dir/../plugin_options.yaml" 407 requires = [ "$ark_root/templates/plugin_options.rb" ] 408 output_file = "$target_gen_dir/generated/intrinsics_types_resolving.inl.h" 409} 410ark_gen_file("intrinsics_ir_build_inl_h") { 411 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 412 template_file = "optimizer/templates/intrinsics/intrinsics_ir_build.inl.h.erb" 413 data_file = "$target_gen_dir/../plugin_options.yaml" 414 requires = [ "$ark_root/templates/plugin_options.rb" ] 415 output_file = "$target_gen_dir/generated/intrinsics_ir_build.inl.h" 416} 417ark_gen_file("intrinsics_ir_build_static_call_inl") { 418 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 419 template_file = 420 "optimizer/templates/intrinsics/intrinsics_ir_build_static_call.inl.erb" 421 data_file = "$target_gen_dir/../plugin_options.yaml" 422 requires = [ "$ark_root/templates/plugin_options.rb" ] 423 output_file = "$target_gen_dir/generated/intrinsics_ir_build_static_call.inl" 424} 425ark_gen_file("intrinsics_ir_build_virtual_call_inl") { 426 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 427 template_file = 428 "optimizer/templates/intrinsics/intrinsics_ir_build_virtual_call.inl.erb" 429 data_file = "$target_gen_dir/../plugin_options.yaml" 430 requires = [ "$ark_root/templates/plugin_options.rb" ] 431 output_file = "$target_gen_dir/generated/intrinsics_ir_build_virtual_call.inl" 432} 433ark_gen_file("intrinsics_can_encode_inl") { 434 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 435 template_file = "optimizer/templates/intrinsics/intrinsics_can_encode.inl.erb" 436 data_file = "$target_gen_dir/../plugin_options.yaml" 437 requires = [ "$ark_root/templates/plugin_options.rb" ] 438 output_file = "$target_gen_dir/generated/intrinsics_can_encode.inl" 439} 440 441ark_gen_file("ir_dyn_base_types_h") { 442 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 443 template_file = "optimizer/templates/ir-dyn-base-types.h.erb" 444 data_file = "$target_gen_dir/../plugin_options.yaml" 445 requires = [ "$ark_root/templates/plugin_options.rb" ] 446 output_file = "$target_gen_dir/generated/ir-dyn-base-types.h" 447} 448 449ark_gen_file("source_languages_h") { 450 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 451 template_file = "optimizer/templates/source_languages.h.erb" 452 data_file = "$target_gen_dir/../plugin_options.yaml" 453 requires = [ "$ark_root/templates/plugin_options.rb" ] 454 output_file = "$target_gen_dir/generated/source_languages.h" 455} 456 457ark_gen_file("codegen_language_extensions_h") { 458 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 459 template_file = "optimizer/templates/codegen_language_extensions.h.erb" 460 data_file = "$target_gen_dir/../plugin_options.yaml" 461 requires = [ "$ark_root/templates/plugin_options.rb" ] 462 output_file = "$target_gen_dir/generated/codegen_language_extensions.h" 463} 464 465ark_gen_file("compiler_interface_extensions_inl_h") { 466 extra_dependencies = [ "$ark_root:concat_plugins_yamls" ] 467 template_file = "optimizer/templates/compiler_interface_extensions.inl.h.erb" 468 data_file = "$target_gen_dir/../plugin_options.yaml" 469 requires = [ "$ark_root/templates/plugin_options.rb" ] 470 output_file = "$target_gen_dir/generated/compiler_interface_extensions.inl.h" 471} 472 473irtoc_file_plugin = "$root_gen_dir/generated/irtoc_plugin_builder.txt" 474write_file(irtoc_file_plugin, plugin_irts) 475 476action("irtoc_builder_cpp") { 477 script = "$ark_root/irtoc/lang/irtoc.rb" 478 outputs = [ "$target_gen_dir/generated/irtoc_builder.cpp" ] 479 args = [ 480 "--input", 481 rebase_path("$ark_root/irtoc/scripts/interpreter.irt", root_build_dir), 482 "--output", 483 rebase_path("$target_gen_dir/generated/irtoc_builder.cpp", root_build_dir), 484 "--ark_source_dir", 485 rebase_path("$ark_root", root_build_dir), 486 "--isa", 487 rebase_path("$root_gen_dir/isa/isa.yaml", root_build_dir), 488 "--definitions", 489 "NDEBUG", 490 "--arch", 491 target_cpu, 492 "--ir-api", 493 "ir-builder", 494 "--plugins", 495 rebase_path(irtoc_file_plugin, root_build_dir), 496 ] 497 498 deps = [ 499 "$ark_root/isa:isa_combine", 500 "$ark_root/runtime:plugins_asm_defines_def", 501 "$ark_root/runtime:plugins_defines_h", 502 ] 503} 504 505action("irtoc_generate_ir_inline") { 506 script = "$ark_root/irtoc/lang/irtoc.rb" 507 outputs = [ "$target_gen_dir/generated/irtoc_ir_inline.h" ] 508 args = [ 509 "--input", 510 rebase_path("$ark_root/irtoc/scripts/interpreter.irt", root_build_dir), 511 "--output", 512 rebase_path("$target_gen_dir/generated/irtoc_ir_inline.h", root_build_dir), 513 "--ark_source_dir", 514 rebase_path("$ark_root", root_build_dir), 515 "--isa", 516 rebase_path("$root_gen_dir/isa/isa.yaml", root_build_dir), 517 "--definitions", 518 "NDEBUG", 519 "--arch", 520 target_cpu, 521 "--ir-api", 522 "ir-inline", 523 "--plugins", 524 rebase_path(irtoc_file_plugin, root_build_dir), 525 ] 526 527 deps = [ 528 "$ark_root/isa:isa_combine", 529 "$ark_root/runtime:plugins_asm_defines_def", 530 "$ark_root/runtime:plugins_defines_h", 531 ] 532} 533