From 702fbbdaa3495a5daa5b2fb9ace1d53813e4d07c Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 28 May 2022 13:19:21 +1000 Subject: [PATCH] nouveau: move codegen into a standalone library. This just moves the codegen build into a separate library, this is just prep work for a future where another drivers wants to reuse this code. Acked-by: Karol Herbst Reviewed-by: Emma Anholt Reviewed-by: Yusuf Khan Part-of: --- .../drivers/nouveau/codegen/meson.build | 83 +++++++++++++++++++ .../drivers/nouveau/codegen/nv50_ir.cpp | 10 +-- src/gallium/drivers/nouveau/codegen/nv50_ir.h | 10 +-- .../drivers/nouveau/codegen/nv50_ir_bb.cpp | 2 +- .../nouveau/codegen/nv50_ir_build_util.cpp | 4 +- .../nouveau/codegen/nv50_ir_emit_gk110.cpp | 2 +- .../nouveau/codegen/nv50_ir_emit_gm107.cpp | 4 +- .../nouveau/codegen/nv50_ir_emit_gv100.cpp | 4 +- .../nouveau/codegen/nv50_ir_emit_gv100.h | 2 +- .../nouveau/codegen/nv50_ir_emit_nv50.cpp | 4 +- .../nouveau/codegen/nv50_ir_emit_nvc0.cpp | 2 +- .../nouveau/codegen/nv50_ir_from_common.cpp | 2 +- .../nouveau/codegen/nv50_ir_from_common.h | 4 +- .../nouveau/codegen/nv50_ir_from_nir.cpp | 10 +-- .../nouveau/codegen/nv50_ir_from_tgsi.cpp | 6 +- .../drivers/nouveau/codegen/nv50_ir_graph.cpp | 4 +- .../drivers/nouveau/codegen/nv50_ir_graph.h | 2 +- .../codegen/nv50_ir_lowering_gm107.cpp | 8 +- .../nouveau/codegen/nv50_ir_lowering_gm107.h | 2 +- .../codegen/nv50_ir_lowering_gv100.cpp | 8 +- .../nouveau/codegen/nv50_ir_lowering_gv100.h | 2 +- .../codegen/nv50_ir_lowering_helper.cpp | 2 +- .../nouveau/codegen/nv50_ir_lowering_helper.h | 4 +- .../nouveau/codegen/nv50_ir_lowering_nv50.cpp | 6 +- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 8 +- .../nouveau/codegen/nv50_ir_lowering_nvc0.h | 4 +- .../nouveau/codegen/nv50_ir_peephole.cpp | 6 +- .../drivers/nouveau/codegen/nv50_ir_print.cpp | 6 +- .../drivers/nouveau/codegen/nv50_ir_ra.cpp | 4 +- .../nouveau/codegen/nv50_ir_serialize.cpp | 6 +- .../drivers/nouveau/codegen/nv50_ir_ssa.cpp | 4 +- .../nouveau/codegen/nv50_ir_target.cpp | 6 +- .../drivers/nouveau/codegen/nv50_ir_target.h | 2 +- .../nouveau/codegen/nv50_ir_target_gm107.cpp | 4 +- .../nouveau/codegen/nv50_ir_target_gm107.h | 2 +- .../nouveau/codegen/nv50_ir_target_gv100.cpp | 6 +- .../nouveau/codegen/nv50_ir_target_gv100.h | 2 +- .../nouveau/codegen/nv50_ir_target_nv50.cpp | 2 +- .../nouveau/codegen/nv50_ir_target_nv50.h | 2 +- .../nouveau/codegen/nv50_ir_target_nvc0.cpp | 2 +- .../nouveau/codegen/nv50_ir_target_nvc0.h | 2 +- .../drivers/nouveau/codegen/nv50_ir_util.cpp | 2 +- src/gallium/drivers/nouveau/meson.build | 58 ++----------- .../drivers/nouveau/nouveau_compiler.c | 2 +- .../drivers/nouveau/nv50/nv50_compute.c | 2 +- .../drivers/nouveau/nv50/nv50_program.c | 2 +- .../drivers/nouveau/nv50/nv50_screen.c | 2 +- .../drivers/nouveau/nvc0/nvc0_program.c | 2 +- .../drivers/nouveau/nvc0/nvc0_screen.c | 2 +- .../drivers/nouveau/nvc0/nve4_compute.c | 2 +- 50 files changed, 182 insertions(+), 147 deletions(-) create mode 100644 src/gallium/drivers/nouveau/codegen/meson.build diff --git a/src/gallium/drivers/nouveau/codegen/meson.build b/src/gallium/drivers/nouveau/codegen/meson.build new file mode 100644 index 00000000000..ea0b119fba7 --- /dev/null +++ b/src/gallium/drivers/nouveau/codegen/meson.build @@ -0,0 +1,83 @@ +# Copyright © 2017 Dylan Baker + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +files_libnouveau_codegen = files( + 'nv50_ir.cpp', + 'nv50_ir_bb.cpp', + 'nv50_ir_build_util.cpp', + 'nv50_ir_build_util.h', + 'nv50_ir_driver.h', + 'nv50_ir_emit_nv50.cpp', + 'nv50_ir_from_common.cpp', + 'nv50_ir_from_common.h', + 'nv50_ir_from_nir.cpp', + 'nv50_ir_from_tgsi.cpp', + 'nv50_ir_graph.cpp', + 'nv50_ir_graph.h', + 'nv50_ir.h', + 'nv50_ir_inlines.h', + 'nv50_ir_lowering_helper.cpp', + 'nv50_ir_lowering_helper.h', + 'nv50_ir_lowering_nv50.cpp', + 'nv50_ir_peephole.cpp', + 'nv50_ir_print.cpp', + 'nv50_ir_ra.cpp', + 'nv50_ir_serialize.cpp', + 'nv50_ir_ssa.cpp', + 'nv50_ir_target.cpp', + 'nv50_ir_target.h', + 'nv50_ir_target_nv50.cpp', + 'nv50_ir_target_nv50.h', + 'nv50_ir_util.cpp', + 'nv50_ir_util.h', + 'unordered_set.h', + 'nv50_ir_emit_gv100.cpp', + 'nv50_ir_emit_gv100.h', + 'nv50_ir_emit_gk110.cpp', + 'nv50_ir_emit_gm107.cpp', + 'nv50_ir_emit_nvc0.cpp', + 'nv50_ir_lowering_gv100.cpp', + 'nv50_ir_lowering_gv100.h', + 'nv50_ir_lowering_gm107.cpp', + 'nv50_ir_lowering_gm107.h', + 'nv50_ir_lowering_nvc0.cpp', + 'nv50_ir_lowering_nvc0.h', + 'nv50_ir_target_gv100.cpp', + 'nv50_ir_target_gv100.h', + 'nv50_ir_target_gm107.cpp', + 'nv50_ir_target_gm107.h', + 'nv50_ir_target_nvc0.cpp', + 'nv50_ir_target_nvc0.h', +) + +libnouveau_codegen = static_library( + 'nouveau_codegen', + files_libnouveau_codegen, + include_directories : [ + inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_mapi, inc_mesa, + ], + gnu_symbol_visibility : 'hidden', + dependencies : [dep_libdrm, idep_mesautil, idep_nir_headers], +) + +idep_nouveau_codegen = declare_dependency( + sources : [ 'nv50_ir_driver.h' ], + include_directories : [inc_gallium_aux, include_directories('.')], +) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp index 08c7ada56d6..95227a5eb3a 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp @@ -20,13 +20,9 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" -#include "codegen/nv50_ir_driver.h" - -extern "C" { -#include "nouveau_debug.h" -} +#include "nv50_ir.h" +#include "nv50_ir_target.h" +#include "nv50_ir_driver.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.h b/src/gallium/drivers/nouveau/codegen/nv50_ir.h index 8e9d5f85c9a..35a8f0a8a50 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.h @@ -30,11 +30,11 @@ #include #include -#include "codegen/unordered_set.h" -#include "codegen/nv50_ir_util.h" -#include "codegen/nv50_ir_graph.h" +#include "unordered_set.h" +#include "nv50_ir_util.h" +#include "nv50_ir_graph.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" namespace nv50_ir { @@ -1415,7 +1415,7 @@ protected: // ============================================================================= -#include "codegen/nv50_ir_inlines.h" +#include "nv50_ir_inlines.h" } // namespace nv50_ir diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp index 76fee8c791e..df5b2226477 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" +#include "nv50_ir.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.cpp index 20ed5cd5250..8d40f7e5c0e 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_build_util.cpp @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index 46354a2bd71..bfba20b2b5b 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_nvc0.h" +#include "nv50_ir_target_nvc0.h" // CodeEmitter for GK110 encoding of the Fermi/Kepler ISA. diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp index 545477e0cd1..0b2ff3b2468 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp @@ -22,8 +22,8 @@ * Authors: Ben Skeggs */ -#include "codegen/nv50_ir_target_gm107.h" -#include "codegen/nv50_ir_sched_gm107.h" +#include "nv50_ir_target_gm107.h" +#include "nv50_ir_sched_gm107.h" //#define GM107_DEBUG_SCHED_DATA diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp index 382273c2893..12295794781 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.cpp @@ -19,8 +19,8 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_emit_gv100.h" -#include "codegen/nv50_ir_sched_gm107.h" +#include "nv50_ir_emit_gv100.h" +#include "nv50_ir_sched_gm107.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h index d6a903e762f..388c80198d0 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gv100.h @@ -21,7 +21,7 @@ */ #ifndef __NV50_IR_EMIT_GV100_H__ #define __NV50_IR_EMIT_GV100_H__ -#include "codegen/nv50_ir_target_gv100.h" +#include "nv50_ir_target_gv100.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp index 1a0c63b7068..48af3d2ad62 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target_nv50.h" +#include "nv50_ir.h" +#include "nv50_ir_target_nv50.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp index c55aae3080d..552234e7be6 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_nvc0.h" +#include "nv50_ir_target_nvc0.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp index 0a70c6881cc..70bcd4231a7 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_from_common.h" +#include "nv50_ir_from_common.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h index a144ca23af0..3da3595b689 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp index 931ee85645c..9ad7b2f4c99 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp @@ -27,11 +27,11 @@ #include "util/u_debug.h" #include "util/u_prim.h" -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_from_common.h" -#include "codegen/nv50_ir_lowering_helper.h" -#include "codegen/nv50_ir_target.h" -#include "codegen/nv50_ir_util.h" +#include "nv50_ir.h" +#include "nv50_ir_from_common.h" +#include "nv50_ir_lowering_helper.h" +#include "nv50_ir_target.h" +#include "nv50_ir_util.h" #include "tgsi/tgsi_from_mesa.h" #if __cplusplus >= 201103L diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index a597e82255a..72035c23be4 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -27,9 +27,9 @@ #include -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_from_common.h" -#include "codegen/nv50_ir_util.h" +#include "nv50_ir.h" +#include "nv50_ir_from_common.h" +#include "nv50_ir_util.h" namespace tgsi { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp index 3f9967a7b3f..3b0373e8c0e 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp @@ -20,11 +20,11 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_graph.h" +#include "nv50_ir_graph.h" #include #include #include -#include "codegen/nv50_ir.h" +#include "nv50_ir.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.h index fc85e78a50c..8ee535c30bf 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_graph.h @@ -23,7 +23,7 @@ #ifndef __NV50_IR_GRAPH_H__ #define __NV50_IR_GRAPH_H__ -#include "codegen/nv50_ir_util.h" +#include "nv50_ir_util.h" #include namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp index 64b47bb2da0..2e6b5178961 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.cpp @@ -21,11 +21,11 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" -#include "codegen/nv50_ir_target_nvc0.h" -#include "codegen/nv50_ir_lowering_gm107.h" +#include "nv50_ir_target_nvc0.h" +#include "nv50_ir_lowering_gm107.h" #include diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h index 3e70bfc2d32..1c3b32e4692 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gm107.h @@ -1,4 +1,4 @@ -#include "codegen/nv50_ir_lowering_nvc0.h" +#include "nv50_ir_lowering_nvc0.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp index 29346765a46..6b053d8a318 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.cpp @@ -19,11 +19,11 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" -#include "codegen/nv50_ir_target_nvc0.h" -#include "codegen/nv50_ir_lowering_gv100.h" +#include "nv50_ir_target_nvc0.h" +#include "nv50_ir_lowering_gv100.h" #include diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h index d918c6e83eb..cd43d2f22f8 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_gv100.h @@ -21,7 +21,7 @@ */ #ifndef __NV50_IR_LOWERING_GV100_H__ #define __NV50_IR_LOWERING_GV100_H__ -#include "codegen/nv50_ir_lowering_gm107.h" +#include "nv50_ir_lowering_gm107.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp index 02380f12b9f..ed5a8043d48 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp @@ -22,7 +22,7 @@ * Authors: Karol Herbst */ -#include "codegen/nv50_ir_lowering_helper.h" +#include "nv50_ir_lowering_helper.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h index c59e7cc6f3f..abd8410c757 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h @@ -25,8 +25,8 @@ #ifndef __NV50_IR_LOWERING_HELPER__ #define __NV50_IR_LOWERING_HELPER__ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp index 2b09855b19f..73e72339cac 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp @@ -20,10 +20,10 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" -#include "codegen/nv50_ir_target_nv50.h" +#include "nv50_ir_target_nv50.h" #define NV50_SU_INFO_SIZE_X 0x00 #define NV50_SU_INFO_SIZE_Y 0x04 diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp index 6f71a901379..2891a1b9c32 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp @@ -20,11 +20,11 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" -#include "codegen/nv50_ir_target_nvc0.h" -#include "codegen/nv50_ir_lowering_nvc0.h" +#include "nv50_ir_target_nvc0.h" +#include "nv50_ir_lowering_nvc0.h" #include diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h index a9b389856e4..953470347b3 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.h @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_build_util.h" /* On nvc0, surface info is obtained via the surface binding points passed * to the SULD/SUST instructions. diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index c440670b3be..a2a33d2e434 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -20,9 +20,9 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" -#include "codegen/nv50_ir_build_util.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" +#include "nv50_ir_build_util.h" extern "C" { #include "util/u_math.h" diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp index e0d52840a53..bee37113936 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp @@ -20,9 +20,9 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" +#include "nv50_ir_driver.h" #include diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp index c40bdb017c1..92bd5a67372 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" #include #include diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_serialize.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_serialize.cpp index be64ffdab44..fd3b3810389 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_serialize.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_serialize.cpp @@ -1,7 +1,7 @@ #include "util/blob.h" -#include "codegen/nv50_ir_driver.h" -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" +#include "nv50_ir_driver.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" #include "nv50_ir_driver.h" #include "tgsi/tgsi_parse.h" #include "compiler/nir/nir_serialize.h" diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ssa.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ssa.cpp index 3d25ad928ef..9a697567fc8 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ssa.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ssa.cpp @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp index abbb6221ae4..f0eb8076bad 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp @@ -20,8 +20,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir.h" -#include "codegen/nv50_ir_target.h" +#include "nv50_ir.h" +#include "nv50_ir_target.h" namespace nv50_ir { @@ -469,7 +469,7 @@ RelocEntry::apply(uint32_t *binary, const RelocInfo *info) const } // namespace nv50_ir -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" extern "C" { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h index ce84ea367f1..691479c5c93 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.h @@ -23,7 +23,7 @@ #ifndef __NV50_IR_TARGET_H__ #define __NV50_IR_TARGET_H__ -#include "codegen/nv50_ir.h" +#include "nv50_ir.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.cpp index 2e2e40770e1..043aefcf917 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.cpp @@ -21,8 +21,8 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_gm107.h" -#include "codegen/nv50_ir_lowering_gm107.h" +#include "nv50_ir_target_gm107.h" +#include "nv50_ir_lowering_gm107.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.h index 10f06d24f4f..0dde97e0375 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gm107.h @@ -1,4 +1,4 @@ -#include "codegen/nv50_ir_target_nvc0.h" +#include "nv50_ir_target_nvc0.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp index fd969e1ece5..17213761c9d 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.cpp @@ -19,9 +19,9 @@ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_gv100.h" -#include "codegen/nv50_ir_lowering_gv100.h" -#include "codegen/nv50_ir_emit_gv100.h" +#include "nv50_ir_target_gv100.h" +#include "nv50_ir_lowering_gv100.h" +#include "nv50_ir_emit_gv100.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h index 897e6a22d30..ff638a469fb 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_gv100.h @@ -21,7 +21,7 @@ */ #ifndef __NV50_IR_TARGET_GV100_H__ #define __NV50_IR_TARGET_GV100_H__ -#include "codegen/nv50_ir_target_gm107.h" +#include "nv50_ir_target_gm107.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp index b9c3746adcf..cfb7c4932fe 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_nv50.h" +#include "nv50_ir_target_nv50.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.h index caf66b269db..8797c98b83b 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.h @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target.h" +#include "nv50_ir_target.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp index cc2657d88a2..da6c37c96c0 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target_nvc0.h" +#include "nv50_ir_target_nvc0.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h index 7808164f451..d49536fa814 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nvc0.h @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_target.h" +#include "nv50_ir_target.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_util.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_util.cpp index dc4ebd51ac5..3e60f880718 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_util.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_util.cpp @@ -20,7 +20,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ -#include "codegen/nv50_ir_util.h" +#include "nv50_ir_util.h" namespace nv50_ir { diff --git a/src/gallium/drivers/nouveau/meson.build b/src/gallium/drivers/nouveau/meson.build index b2a481944dc..01f6d4d0a50 100644 --- a/src/gallium/drivers/nouveau/meson.build +++ b/src/gallium/drivers/nouveau/meson.build @@ -18,6 +18,8 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +subdir('codegen') + files_libnouveau = files( 'nouveau_buffer.c', 'nouveau_buffer.h', @@ -122,52 +124,6 @@ files_libnouveau = files( 'nv50/nv98_video.h', 'nv50/nv98_video_ppp.c', 'nv50/nv98_video_vp.c', - 'codegen/nv50_ir.cpp', - 'codegen/nv50_ir_bb.cpp', - 'codegen/nv50_ir_build_util.cpp', - 'codegen/nv50_ir_build_util.h', - 'codegen/nv50_ir_driver.h', - 'codegen/nv50_ir_emit_nv50.cpp', - 'codegen/nv50_ir_from_common.cpp', - 'codegen/nv50_ir_from_common.h', - 'codegen/nv50_ir_from_nir.cpp', - 'codegen/nv50_ir_from_tgsi.cpp', - 'codegen/nv50_ir_graph.cpp', - 'codegen/nv50_ir_graph.h', - 'codegen/nv50_ir.h', - 'codegen/nv50_ir_inlines.h', - 'codegen/nv50_ir_lowering_helper.cpp', - 'codegen/nv50_ir_lowering_helper.h', - 'codegen/nv50_ir_lowering_nv50.cpp', - 'codegen/nv50_ir_peephole.cpp', - 'codegen/nv50_ir_print.cpp', - 'codegen/nv50_ir_ra.cpp', - 'codegen/nv50_ir_serialize.cpp', - 'codegen/nv50_ir_ssa.cpp', - 'codegen/nv50_ir_target.cpp', - 'codegen/nv50_ir_target.h', - 'codegen/nv50_ir_target_nv50.cpp', - 'codegen/nv50_ir_target_nv50.h', - 'codegen/nv50_ir_util.cpp', - 'codegen/nv50_ir_util.h', - 'codegen/unordered_set.h', - 'codegen/nv50_ir_emit_gv100.cpp', - 'codegen/nv50_ir_emit_gv100.h', - 'codegen/nv50_ir_emit_gk110.cpp', - 'codegen/nv50_ir_emit_gm107.cpp', - 'codegen/nv50_ir_emit_nvc0.cpp', - 'codegen/nv50_ir_lowering_gv100.cpp', - 'codegen/nv50_ir_lowering_gv100.h', - 'codegen/nv50_ir_lowering_gm107.cpp', - 'codegen/nv50_ir_lowering_gm107.h', - 'codegen/nv50_ir_lowering_nvc0.cpp', - 'codegen/nv50_ir_lowering_nvc0.h', - 'codegen/nv50_ir_target_gv100.cpp', - 'codegen/nv50_ir_target_gv100.h', - 'codegen/nv50_ir_target_gm107.cpp', - 'codegen/nv50_ir_target_gm107.h', - 'codegen/nv50_ir_target_nvc0.cpp', - 'codegen/nv50_ir_target_nvc0.h', 'nvc0/cla0c0qmd.h', 'nvc0/clc0c0qmd.h', 'nvc0/clc3c0qmd.h', @@ -231,21 +187,21 @@ libnouveau = static_library( inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_mapi, inc_mesa, ], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_mesautil, idep_nir_headers], + dependencies : [dep_libdrm, idep_nouveau_codegen, dep_libdrm_nouveau, idep_mesautil, idep_nir_headers], ) nouveau_compiler = executable( 'nouveau_compiler', 'nouveau_compiler.c', + dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_mesautil, idep_nir, idep_nouveau_codegen], include_directories : [inc_src, inc_include, inc_gallium, inc_gallium_aux], - dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_mesautil, idep_nir], - link_with : [libnouveau, libgallium], + link_with : [libnouveau_codegen, libnouveau, libgallium], build_by_default : with_tools.contains('nouveau'), install : with_tools.contains('nouveau'), ) driver_nouveau = declare_dependency( compile_args : '-DGALLIUM_NOUVEAU', - dependencies : idep_nir, - link_with : [libnouveauwinsys, libnouveau], + dependencies : [idep_nir, idep_nouveau_codegen], + link_with : [libnouveauwinsys, libnouveau_codegen, libnouveau], ) diff --git a/src/gallium/drivers/nouveau/nouveau_compiler.c b/src/gallium/drivers/nouveau/nouveau_compiler.c index cf4b0995145..93521560f96 100644 --- a/src/gallium/drivers/nouveau/nouveau_compiler.c +++ b/src/gallium/drivers/nouveau/nouveau_compiler.c @@ -25,7 +25,7 @@ #include "tgsi/tgsi_text.h" #include "util/u_debug.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" #include "nv50/nv50_context.h" /* these headers weren't really meant to be included together */ diff --git a/src/gallium/drivers/nouveau/nv50/nv50_compute.c b/src/gallium/drivers/nouveau/nv50/nv50_compute.c index feecc9ca822..8c43deeb461 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_compute.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_compute.c @@ -28,7 +28,7 @@ #include "nv50/nv50_context.h" #include "nv50/nv50_compute.xml.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" int nv50_screen_compute_setup(struct nv50_screen *screen, diff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c index 7c4cf066e1a..a81b176fccf 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_program.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c @@ -27,7 +27,7 @@ #include "nv50/nv50_context.h" #include "nv50/nv50_program.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" static inline unsigned bitcount4(const uint32_t val) diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c index 28982b0a0ff..31877250bcf 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c @@ -28,7 +28,7 @@ #include "util/u_screen.h" #include "pipe/p_screen.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" #include "nv50/nv50_context.h" #include "nv50/nv50_screen.h" diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c index 93b972a0725..ff89fb6b461 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c @@ -28,7 +28,7 @@ #include "nvc0/nvc0_context.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" #include "nvc0/nve4_compute.h" /* NOTE: Using a[0x270] in FP may cause an error even if we're using less than diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index bac94957928..1a37290bfd0 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -30,7 +30,7 @@ #include "nouveau_vp3_video.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" #include "nvc0/nvc0_context.h" #include "nvc0/nvc0_screen.h" diff --git a/src/gallium/drivers/nouveau/nvc0/nve4_compute.c b/src/gallium/drivers/nouveau/nvc0/nve4_compute.c index 549205e4565..03a88b87797 100644 --- a/src/gallium/drivers/nouveau/nvc0/nve4_compute.c +++ b/src/gallium/drivers/nouveau/nvc0/nve4_compute.c @@ -25,7 +25,7 @@ #include "nvc0/nvc0_context.h" #include "nvc0/nve4_compute.h" -#include "codegen/nv50_ir_driver.h" +#include "nv50_ir_driver.h" #include "drf.h" #include "qmd.h"