xref: /aosp_15_r20/external/mesa3d/src/intel/compiler/elk/meson.build (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker# Copyright © 2017 Intel Corporation
2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Workerlibintel_compiler_elk_files = files(
5*61046927SAndroid Build Coastguard Worker  'elk_cfg.cpp',
6*61046927SAndroid Build Coastguard Worker  'elk_cfg.h',
7*61046927SAndroid Build Coastguard Worker  'elk_clip.h',
8*61046927SAndroid Build Coastguard Worker  'elk_clip_line.c',
9*61046927SAndroid Build Coastguard Worker  'elk_clip_point.c',
10*61046927SAndroid Build Coastguard Worker  'elk_clip_tri.c',
11*61046927SAndroid Build Coastguard Worker  'elk_clip_unfilled.c',
12*61046927SAndroid Build Coastguard Worker  'elk_clip_util.c',
13*61046927SAndroid Build Coastguard Worker  'elk_compile_clip.c',
14*61046927SAndroid Build Coastguard Worker  'elk_compile_ff_gs.c',
15*61046927SAndroid Build Coastguard Worker  'elk_compile_sf.c',
16*61046927SAndroid Build Coastguard Worker  'elk_compiler.c',
17*61046927SAndroid Build Coastguard Worker  'elk_compiler.h',
18*61046927SAndroid Build Coastguard Worker  'elk_dead_control_flow.cpp',
19*61046927SAndroid Build Coastguard Worker  'elk_dead_control_flow.h',
20*61046927SAndroid Build Coastguard Worker  'elk_debug_recompile.c',
21*61046927SAndroid Build Coastguard Worker  'elk_disasm.c',
22*61046927SAndroid Build Coastguard Worker  'elk_disasm.h',
23*61046927SAndroid Build Coastguard Worker  'elk_disasm_info.c',
24*61046927SAndroid Build Coastguard Worker  'elk_disasm_info.h',
25*61046927SAndroid Build Coastguard Worker  'elk_eu.c',
26*61046927SAndroid Build Coastguard Worker  'elk_eu_compact.c',
27*61046927SAndroid Build Coastguard Worker  'elk_eu_defines.h',
28*61046927SAndroid Build Coastguard Worker  'elk_eu_emit.c',
29*61046927SAndroid Build Coastguard Worker  'elk_eu_opcodes.h',
30*61046927SAndroid Build Coastguard Worker  'elk_eu.h',
31*61046927SAndroid Build Coastguard Worker  'elk_eu_util.c',
32*61046927SAndroid Build Coastguard Worker  'elk_eu_validate.c',
33*61046927SAndroid Build Coastguard Worker  'elk_fs_bank_conflicts.cpp',
34*61046927SAndroid Build Coastguard Worker  'elk_fs_builder.h',
35*61046927SAndroid Build Coastguard Worker  'elk_fs_cmod_propagation.cpp',
36*61046927SAndroid Build Coastguard Worker  'elk_fs_combine_constants.cpp',
37*61046927SAndroid Build Coastguard Worker  'elk_fs_copy_propagation.cpp',
38*61046927SAndroid Build Coastguard Worker  'elk_fs.cpp',
39*61046927SAndroid Build Coastguard Worker  'elk_fs_cse.cpp',
40*61046927SAndroid Build Coastguard Worker  'elk_fs_dead_code_eliminate.cpp',
41*61046927SAndroid Build Coastguard Worker  'elk_fs_generator.cpp',
42*61046927SAndroid Build Coastguard Worker  'elk_fs.h',
43*61046927SAndroid Build Coastguard Worker  'elk_fs_live_variables.cpp',
44*61046927SAndroid Build Coastguard Worker  'elk_fs_live_variables.h',
45*61046927SAndroid Build Coastguard Worker  'elk_fs_lower_pack.cpp',
46*61046927SAndroid Build Coastguard Worker  'elk_fs_lower_regioning.cpp',
47*61046927SAndroid Build Coastguard Worker  'elk_fs_nir.cpp',
48*61046927SAndroid Build Coastguard Worker  'elk_fs_reg_allocate.cpp',
49*61046927SAndroid Build Coastguard Worker  'elk_fs_register_coalesce.cpp',
50*61046927SAndroid Build Coastguard Worker  'elk_fs_saturate_propagation.cpp',
51*61046927SAndroid Build Coastguard Worker  'elk_fs_sel_peephole.cpp',
52*61046927SAndroid Build Coastguard Worker  'elk_fs_thread_payload.cpp',
53*61046927SAndroid Build Coastguard Worker  'elk_fs_validate.cpp',
54*61046927SAndroid Build Coastguard Worker  'elk_fs_visitor.cpp',
55*61046927SAndroid Build Coastguard Worker  'elk_inst.h',
56*61046927SAndroid Build Coastguard Worker  'elk_interpolation_map.c',
57*61046927SAndroid Build Coastguard Worker  'elk_ir.h',
58*61046927SAndroid Build Coastguard Worker  'elk_ir_allocator.h',
59*61046927SAndroid Build Coastguard Worker  'elk_ir_analysis.h',
60*61046927SAndroid Build Coastguard Worker  'elk_ir_fs.h',
61*61046927SAndroid Build Coastguard Worker  'elk_ir_performance.h',
62*61046927SAndroid Build Coastguard Worker  'elk_ir_performance.cpp',
63*61046927SAndroid Build Coastguard Worker  'elk_ir_vec4.h',
64*61046927SAndroid Build Coastguard Worker  'elk_isa_info.h',
65*61046927SAndroid Build Coastguard Worker  'elk_lower_logical_sends.cpp',
66*61046927SAndroid Build Coastguard Worker  'elk_nir.h',
67*61046927SAndroid Build Coastguard Worker  'elk_nir.c',
68*61046927SAndroid Build Coastguard Worker  'elk_nir_analyze_boolean_resolves.c',
69*61046927SAndroid Build Coastguard Worker  'elk_nir_analyze_ubo_ranges.c',
70*61046927SAndroid Build Coastguard Worker  'elk_nir_attribute_workarounds.c',
71*61046927SAndroid Build Coastguard Worker  'elk_nir_lower_alpha_to_coverage.c',
72*61046927SAndroid Build Coastguard Worker  'elk_nir_lower_cs_intrinsics.c',
73*61046927SAndroid Build Coastguard Worker  'elk_nir_lower_storage_image.c',
74*61046927SAndroid Build Coastguard Worker  'elk_nir_options.h',
75*61046927SAndroid Build Coastguard Worker  'elk_nir_options.c',
76*61046927SAndroid Build Coastguard Worker  'elk_nir_private.h',
77*61046927SAndroid Build Coastguard Worker  'elk_packed_float.c',
78*61046927SAndroid Build Coastguard Worker  'elk_predicated_break.cpp',
79*61046927SAndroid Build Coastguard Worker  'elk_prim.h',
80*61046927SAndroid Build Coastguard Worker  'elk_private.h',
81*61046927SAndroid Build Coastguard Worker  'elk_reg.h',
82*61046927SAndroid Build Coastguard Worker  'elk_reg_type.c',
83*61046927SAndroid Build Coastguard Worker  'elk_reg_type.h',
84*61046927SAndroid Build Coastguard Worker  'elk_schedule_instructions.cpp',
85*61046927SAndroid Build Coastguard Worker  'elk_shader.cpp',
86*61046927SAndroid Build Coastguard Worker  'elk_shader.h',
87*61046927SAndroid Build Coastguard Worker  'elk_simd_selection.cpp',
88*61046927SAndroid Build Coastguard Worker  'elk_vec4_builder.h',
89*61046927SAndroid Build Coastguard Worker  'elk_vec4_cmod_propagation.cpp',
90*61046927SAndroid Build Coastguard Worker  'elk_vec4_copy_propagation.cpp',
91*61046927SAndroid Build Coastguard Worker  'elk_vec4.cpp',
92*61046927SAndroid Build Coastguard Worker  'elk_vec4_cse.cpp',
93*61046927SAndroid Build Coastguard Worker  'elk_vec4_dead_code_eliminate.cpp',
94*61046927SAndroid Build Coastguard Worker  'elk_vec4_generator.cpp',
95*61046927SAndroid Build Coastguard Worker  'elk_vec4_gs_visitor.cpp',
96*61046927SAndroid Build Coastguard Worker  'elk_vec4_gs_visitor.h',
97*61046927SAndroid Build Coastguard Worker  'elk_vec4.h',
98*61046927SAndroid Build Coastguard Worker  'elk_vec4_live_variables.cpp',
99*61046927SAndroid Build Coastguard Worker  'elk_vec4_live_variables.h',
100*61046927SAndroid Build Coastguard Worker  'elk_vec4_nir.cpp',
101*61046927SAndroid Build Coastguard Worker  'elk_vec4_gs_nir.cpp',
102*61046927SAndroid Build Coastguard Worker  'elk_vec4_reg_allocate.cpp',
103*61046927SAndroid Build Coastguard Worker  'elk_vec4_surface_builder.cpp',
104*61046927SAndroid Build Coastguard Worker  'elk_vec4_surface_builder.h',
105*61046927SAndroid Build Coastguard Worker  'elk_vec4_tcs.cpp',
106*61046927SAndroid Build Coastguard Worker  'elk_vec4_tcs.h',
107*61046927SAndroid Build Coastguard Worker  'elk_vec4_tes.cpp',
108*61046927SAndroid Build Coastguard Worker  'elk_vec4_tes.h',
109*61046927SAndroid Build Coastguard Worker  'elk_vec4_visitor.cpp',
110*61046927SAndroid Build Coastguard Worker  'elk_vec4_vs_visitor.cpp',
111*61046927SAndroid Build Coastguard Worker  'elk_vec4_vs.h',
112*61046927SAndroid Build Coastguard Worker  'elk_vue_map.c',
113*61046927SAndroid Build Coastguard Worker  'elk_gfx6_gs_visitor.cpp',
114*61046927SAndroid Build Coastguard Worker  'elk_gfx6_gs_visitor.h',
115*61046927SAndroid Build Coastguard Worker)
116*61046927SAndroid Build Coastguard Worker
117*61046927SAndroid Build Coastguard Workerelk_nir_trig = custom_target(
118*61046927SAndroid Build Coastguard Worker  'elk_nir_trig_workarounds.c',
119*61046927SAndroid Build Coastguard Worker  input : 'elk_nir_trig_workarounds.py',
120*61046927SAndroid Build Coastguard Worker  output : 'elk_nir_trig_workarounds.c',
121*61046927SAndroid Build Coastguard Worker  command : [
122*61046927SAndroid Build Coastguard Worker    prog_python, '@INPUT@', '-p', dir_compiler_nir,
123*61046927SAndroid Build Coastguard Worker  ],
124*61046927SAndroid Build Coastguard Worker  depend_files : nir_algebraic_depends,
125*61046927SAndroid Build Coastguard Worker  capture : true,
126*61046927SAndroid Build Coastguard Worker)
127*61046927SAndroid Build Coastguard Worker
128*61046927SAndroid Build Coastguard Workerlibintel_compiler_elk = static_library(
129*61046927SAndroid Build Coastguard Worker  'intel_compiler_elk',
130*61046927SAndroid Build Coastguard Worker  [libintel_compiler_elk_files, intel_nir_files, elk_nir_trig, ir_expression_operation_h],
131*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_intel],
132*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
133*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
134*61046927SAndroid Build Coastguard Worker  dependencies : [idep_nir_headers, idep_mesautil, idep_intel_dev],
135*61046927SAndroid Build Coastguard Worker  build_by_default : false,
136*61046927SAndroid Build Coastguard Worker)
137*61046927SAndroid Build Coastguard Worker
138*61046927SAndroid Build Coastguard Workeridep_intel_compiler_elk = declare_dependency(
139*61046927SAndroid Build Coastguard Worker  link_with : [libintel_compiler_elk],
140*61046927SAndroid Build Coastguard Worker  dependencies : [
141*61046927SAndroid Build Coastguard Worker    idep_nir,
142*61046927SAndroid Build Coastguard Worker  ],
143*61046927SAndroid Build Coastguard Worker)
144*61046927SAndroid Build Coastguard Worker
145*61046927SAndroid Build Coastguard Workerif with_tests
146*61046927SAndroid Build Coastguard Worker  test(
147*61046927SAndroid Build Coastguard Worker    'intel_compiler_elk_tests',
148*61046927SAndroid Build Coastguard Worker    executable(
149*61046927SAndroid Build Coastguard Worker      'intel_compiler_elk_tests',
150*61046927SAndroid Build Coastguard Worker      files(
151*61046927SAndroid Build Coastguard Worker        'elk_test_predicated_break.cpp',
152*61046927SAndroid Build Coastguard Worker        'elk_test_eu_compact.cpp',
153*61046927SAndroid Build Coastguard Worker        'elk_test_eu_validate.cpp',
154*61046927SAndroid Build Coastguard Worker        'elk_test_fs_cmod_propagation.cpp',
155*61046927SAndroid Build Coastguard Worker        'elk_test_fs_combine_constants.cpp',
156*61046927SAndroid Build Coastguard Worker        'elk_test_fs_copy_propagation.cpp',
157*61046927SAndroid Build Coastguard Worker        'elk_test_fs_saturate_propagation.cpp',
158*61046927SAndroid Build Coastguard Worker        'elk_test_simd_selection.cpp',
159*61046927SAndroid Build Coastguard Worker        'elk_test_vec4_cmod_propagation.cpp',
160*61046927SAndroid Build Coastguard Worker        'elk_test_vec4_copy_propagation.cpp',
161*61046927SAndroid Build Coastguard Worker        'elk_test_vec4_dead_code_eliminate.cpp',
162*61046927SAndroid Build Coastguard Worker        'elk_test_vec4_register_coalesce.cpp',
163*61046927SAndroid Build Coastguard Worker        'elk_test_vf_float_conversions.cpp',
164*61046927SAndroid Build Coastguard Worker      ),
165*61046927SAndroid Build Coastguard Worker      ir_expression_operation_h,
166*61046927SAndroid Build Coastguard Worker      include_directories : [inc_include, inc_src, inc_intel],
167*61046927SAndroid Build Coastguard Worker      link_with : [
168*61046927SAndroid Build Coastguard Worker        libintel_common, libisl
169*61046927SAndroid Build Coastguard Worker      ],
170*61046927SAndroid Build Coastguard Worker      dependencies : [idep_gtest, idep_nir, idep_mesautil, idep_intel_dev,
171*61046927SAndroid Build Coastguard Worker                      idep_intel_compiler_elk],
172*61046927SAndroid Build Coastguard Worker    ),
173*61046927SAndroid Build Coastguard Worker    suite : ['intel'],
174*61046927SAndroid Build Coastguard Worker    protocol : 'gtest',
175*61046927SAndroid Build Coastguard Worker  )
176*61046927SAndroid Build Coastguard Workerendif
177*61046927SAndroid Build Coastguard Worker
178*61046927SAndroid Build Coastguard Workerif with_intel_tools
179*61046927SAndroid Build Coastguard Worker
180*61046927SAndroid Build Coastguard Workerelk_gram_tab = custom_target(
181*61046927SAndroid Build Coastguard Worker  'elk_gram.tab.[ch]',
182*61046927SAndroid Build Coastguard Worker  input : 'elk_gram.y',
183*61046927SAndroid Build Coastguard Worker  output : ['elk_gram.tab.c', 'elk_gram.tab.h'],
184*61046927SAndroid Build Coastguard Worker  command : bison_command
185*61046927SAndroid Build Coastguard Worker)
186*61046927SAndroid Build Coastguard Worker
187*61046927SAndroid Build Coastguard Workerelk_lex_yy_c = custom_target(
188*61046927SAndroid Build Coastguard Worker  'elk_lex.yy.c',
189*61046927SAndroid Build Coastguard Worker  input : 'elk_lex.l',
190*61046927SAndroid Build Coastguard Worker  output : 'elk_lex.yy.c',
191*61046927SAndroid Build Coastguard Worker  command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@']
192*61046927SAndroid Build Coastguard Worker)
193*61046927SAndroid Build Coastguard Worker
194*61046927SAndroid Build Coastguard Workerelk_asm_tool = executable(
195*61046927SAndroid Build Coastguard Worker  'elk_asm',
196*61046927SAndroid Build Coastguard Worker  ['elk_asm_tool.c', elk_gram_tab[0], elk_gram_tab[1], elk_lex_yy_c],
197*61046927SAndroid Build Coastguard Worker  dependencies : [idep_mesautil, dep_thread, idep_intel_dev, idep_intel_compiler_elk],
198*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_intel],
199*61046927SAndroid Build Coastguard Worker  link_with : [libintel_common],
200*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
201*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
202*61046927SAndroid Build Coastguard Worker  install : true
203*61046927SAndroid Build Coastguard Worker)
204*61046927SAndroid Build Coastguard Worker
205*61046927SAndroid Build Coastguard Workerasm_testcases = [
206*61046927SAndroid Build Coastguard Worker  ['brw', 'gfx4'],
207*61046927SAndroid Build Coastguard Worker  ['g4x', 'gfx4.5'],
208*61046927SAndroid Build Coastguard Worker  ['ilk', 'gfx5'],
209*61046927SAndroid Build Coastguard Worker  ['snb', 'gfx6'],
210*61046927SAndroid Build Coastguard Worker  ['ivb', 'gfx7'],
211*61046927SAndroid Build Coastguard Worker  ['hsw', 'gfx7.5'],
212*61046927SAndroid Build Coastguard Worker  ['bdw', 'gfx8'],
213*61046927SAndroid Build Coastguard Worker]
214*61046927SAndroid Build Coastguard Worker
215*61046927SAndroid Build Coastguard Workertest_runner = find_program('tests/run-test.py')
216*61046927SAndroid Build Coastguard Workerforeach testcase : asm_testcases
217*61046927SAndroid Build Coastguard Worker  _gen_name = testcase[0]
218*61046927SAndroid Build Coastguard Worker  _gen_num = testcase[1]
219*61046927SAndroid Build Coastguard Worker  _gen_folder = join_paths(meson.current_source_dir(), 'tests',
220*61046927SAndroid Build Coastguard Worker                           _gen_num.replace('gfx', 'gen'))
221*61046927SAndroid Build Coastguard Worker  test(
222*61046927SAndroid Build Coastguard Worker    'elk_asm_' + _gen_num, test_runner,
223*61046927SAndroid Build Coastguard Worker    args : [
224*61046927SAndroid Build Coastguard Worker      '--elk_asm', elk_asm_tool,
225*61046927SAndroid Build Coastguard Worker      '--gen_name', _gen_name,
226*61046927SAndroid Build Coastguard Worker      '--gen_folder', _gen_folder,
227*61046927SAndroid Build Coastguard Worker    ],
228*61046927SAndroid Build Coastguard Worker    suite : 'intel',
229*61046927SAndroid Build Coastguard Worker  )
230*61046927SAndroid Build Coastguard Workerendforeach
231*61046927SAndroid Build Coastguard Worker
232*61046927SAndroid Build Coastguard Workerelk_disasm_tool = executable(
233*61046927SAndroid Build Coastguard Worker  'elk_disasm',
234*61046927SAndroid Build Coastguard Worker  files('elk_disasm_tool.c'),
235*61046927SAndroid Build Coastguard Worker  dependencies : [idep_mesautil, dep_thread, idep_intel_dev, idep_intel_compiler_elk],
236*61046927SAndroid Build Coastguard Worker  include_directories : [inc_include, inc_src, inc_intel],
237*61046927SAndroid Build Coastguard Worker  link_with : [libintel_common],
238*61046927SAndroid Build Coastguard Worker  c_args : [no_override_init_args],
239*61046927SAndroid Build Coastguard Worker  gnu_symbol_visibility : 'hidden',
240*61046927SAndroid Build Coastguard Worker  install : true
241*61046927SAndroid Build Coastguard Worker)
242*61046927SAndroid Build Coastguard Worker
243*61046927SAndroid Build Coastguard Workerendif
244*61046927SAndroid Build Coastguard Worker
245