1361fc4cbSmaya# Copyright © 2018 Rob Clark 2361fc4cbSmaya 3361fc4cbSmaya# Permission is hereby granted, free of charge, to any person obtaining a copy 4361fc4cbSmaya# of this software and associated documentation files (the "Software"), to deal 5361fc4cbSmaya# in the Software without restriction, including without limitation the rights 6361fc4cbSmaya# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7361fc4cbSmaya# copies of the Software, and to permit persons to whom the Software is 8361fc4cbSmaya# furnished to do so, subject to the following conditions: 9361fc4cbSmaya 10361fc4cbSmaya# The above copyright notice and this permission notice shall be included in 11361fc4cbSmaya# all copies or substantial portions of the Software. 12361fc4cbSmaya 13361fc4cbSmaya# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14361fc4cbSmaya# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15361fc4cbSmaya# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16361fc4cbSmaya# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17361fc4cbSmaya# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18361fc4cbSmaya# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19361fc4cbSmaya# SOFTWARE. 20361fc4cbSmaya 21361fc4cbSmayair3_nir_trig_c = custom_target( 22361fc4cbSmaya 'ir3_nir_trig.c', 23361fc4cbSmaya input : 'ir3_nir_trig.py', 24361fc4cbSmaya output : 'ir3_nir_trig.c', 25361fc4cbSmaya command : [ 26361fc4cbSmaya prog_python, '@INPUT@', 27361fc4cbSmaya '-p', join_paths(meson.source_root(), 'src/compiler/nir/'), 28361fc4cbSmaya ], 29361fc4cbSmaya capture : true, 307ec681f3Smrg depend_files : nir_algebraic_depends, 317ec681f3Smrg) 327ec681f3Smrg 337ec681f3Smrgir3_nir_imul_c = custom_target( 347ec681f3Smrg 'ir3_nir_imul.c', 357ec681f3Smrg input : 'ir3_nir_imul.py', 367ec681f3Smrg output : 'ir3_nir_imul.c', 377ec681f3Smrg command : [ 387ec681f3Smrg prog_python, '@INPUT@', 397ec681f3Smrg '-p', join_paths(meson.source_root(), 'src/compiler/nir/'), 407ec681f3Smrg ], 417ec681f3Smrg capture : true, 427ec681f3Smrg depend_files : nir_algebraic_depends, 437ec681f3Smrg) 447ec681f3Smrg 457ec681f3Smrgir3_parser = custom_target( 467ec681f3Smrg 'ir3_parser.[ch]', 477ec681f3Smrg input: 'ir3_parser.y', 487ec681f3Smrg output: ['ir3_parser.c', 'ir3_parser.h'], 497ec681f3Smrg command: [ 507ec681f3Smrg prog_bison, '@INPUT@', '--name-prefix=ir3_yy', '--defines=@OUTPUT1@', '--output=@OUTPUT0@' 517ec681f3Smrg ] 527ec681f3Smrg) 537ec681f3Smrg 547ec681f3Smrgir3_lexer = custom_target( 557ec681f3Smrg 'ir3_lexer.c', 567ec681f3Smrg input: 'ir3_lexer.l', 577ec681f3Smrg output: 'ir3_lexer.c', 587ec681f3Smrg command: [ 597ec681f3Smrg prog_flex, '-o', '@OUTPUT@', '@INPUT@' 607ec681f3Smrg ] 61361fc4cbSmaya) 62361fc4cbSmaya 63361fc4cbSmayalibfreedreno_ir3_files = files( 64361fc4cbSmaya 'disasm-a3xx.c', 65361fc4cbSmaya 'instr-a3xx.h', 66361fc4cbSmaya 'ir3.c', 67361fc4cbSmaya 'ir3_a4xx.c', 68361fc4cbSmaya 'ir3_a6xx.c', 697ec681f3Smrg 'ir3_array_to_ssa.c', 707ec681f3Smrg 'ir3_assembler.c', 717ec681f3Smrg 'ir3_assembler.h', 72361fc4cbSmaya 'ir3_compiler_nir.c', 73361fc4cbSmaya 'ir3_compiler.c', 74361fc4cbSmaya 'ir3_compiler.h', 75361fc4cbSmaya 'ir3_context.c', 76361fc4cbSmaya 'ir3_context.h', 777ec681f3Smrg 'ir3_cf.c', 78361fc4cbSmaya 'ir3_cp.c', 797ec681f3Smrg 'ir3_cp_postsched.c', 807ec681f3Smrg 'ir3_cse.c', 817ec681f3Smrg 'ir3_dce.c', 827ec681f3Smrg 'ir3_delay.c', 837ec681f3Smrg 'ir3_dominance.c', 847ec681f3Smrg 'ir3_disk_cache.c', 85361fc4cbSmaya 'ir3_image.c', 86361fc4cbSmaya 'ir3_image.h', 87361fc4cbSmaya 'ir3.h', 88361fc4cbSmaya 'ir3_legalize.c', 897ec681f3Smrg 'ir3_liveness.c', 907ec681f3Smrg 'ir3_lower_parallelcopy.c', 917ec681f3Smrg 'ir3_lower_spill.c', 927ec681f3Smrg 'ir3_lower_subgroups.c', 937ec681f3Smrg 'ir3_merge_regs.c', 94361fc4cbSmaya 'ir3_nir.c', 95361fc4cbSmaya 'ir3_nir.h', 96361fc4cbSmaya 'ir3_nir_analyze_ubo_ranges.c', 97361fc4cbSmaya 'ir3_nir_lower_load_barycentric_at_sample.c', 98361fc4cbSmaya 'ir3_nir_lower_load_barycentric_at_offset.c', 99361fc4cbSmaya 'ir3_nir_lower_io_offsets.c', 1007ec681f3Smrg 'ir3_nir_lower_tess.c', 1017ec681f3Smrg 'ir3_nir_lower_tex_prefetch.c', 102361fc4cbSmaya 'ir3_nir_lower_tg4_to_tex.c', 103361fc4cbSmaya 'ir3_nir_move_varying_inputs.c', 1047ec681f3Smrg 'ir3_postsched.c', 105361fc4cbSmaya 'ir3_print.c', 106361fc4cbSmaya 'ir3_ra.c', 1077ec681f3Smrg 'ir3_ra.h', 1087ec681f3Smrg 'ir3_ra_validate.c', 1097ec681f3Smrg 'ir3_remove_unreachable.c', 110361fc4cbSmaya 'ir3_sched.c', 111361fc4cbSmaya 'ir3_shader.c', 112361fc4cbSmaya 'ir3_shader.h', 1137ec681f3Smrg 'ir3_spill.c', 1147ec681f3Smrg 'ir3_validate.c', 115361fc4cbSmaya) 116361fc4cbSmaya 117361fc4cbSmayalibfreedreno_ir3 = static_library( 118361fc4cbSmaya 'freedreno_ir3', 1197ec681f3Smrg [libfreedreno_ir3_files, ir3_nir_trig_c, ir3_nir_imul_c, ir3_parser[0], ir3_parser[1], ir3_lexer], 1207ec681f3Smrg include_directories : [inc_freedreno, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], 1217ec681f3Smrg c_args : [no_override_init_args], 1227ec681f3Smrg gnu_symbol_visibility : 'hidden', 1237ec681f3Smrg link_with: [libir3decode, libir3encode, libfreedreno_common], 1247ec681f3Smrg dependencies : [idep_nir_headers, dep_dl, idep_mesautil], 125361fc4cbSmaya build_by_default : false, 126361fc4cbSmaya) 127361fc4cbSmaya 1287ec681f3Smrgtest('ir3_disasm', 1297ec681f3Smrg executable( 1307ec681f3Smrg 'ir3_disasm', 1317ec681f3Smrg 'tests/disasm.c', 1327ec681f3Smrg link_args : [ld_args_build_id], 1337ec681f3Smrg link_with: [libfreedreno_ir3, libir3decode], 1347ec681f3Smrg dependencies: [idep_mesautil, idep_nir], 1357ec681f3Smrg include_directories: [inc_freedreno, inc_include, inc_src, inc_gallium], 1367ec681f3Smrg ), 1377ec681f3Smrg suite: ['freedreno'], 1387ec681f3Smrg) 1397ec681f3Smrg 1407ec681f3Smrgtest('ir3_delay_test', 1417ec681f3Smrg executable( 1427ec681f3Smrg 'ir3_delay_test', 1437ec681f3Smrg 'tests/delay.c', 1447ec681f3Smrg link_with: libfreedreno_ir3, 1457ec681f3Smrg link_args: ld_args_build_id, 1467ec681f3Smrg dependencies: [idep_mesautil, idep_nir], 1477ec681f3Smrg include_directories: [inc_freedreno, inc_include, inc_src, inc_mesa, inc_gallium], 1487ec681f3Smrg ), 1497ec681f3Smrg suite: ['freedreno'], 1507ec681f3Smrg) 151