Don't recompile entire ACO when something changes in NIR.
Instead, only use some headers which are actually needed,
include these in ACO files instead of relying on nir.h to
include them.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22241>
#include "aco_builder.h"
#include "aco_ir.h"
+#include "util/bitset.h"
+
#include <algorithm>
#include <bitset>
#include <set>
#include "aco_ir.h"
+#include "nir.h"
+
#include <array>
#include <unordered_map>
#include <vector>
#ifndef ACO_INTERFACE_H
#define ACO_INTERFACE_H
-#include "nir.h"
-
#include "amd_family.h"
#include "aco_shader_info.h"
extern "C" {
#endif
+typedef struct nir_shader nir_shader;
struct ac_shader_config;
struct aco_shader_info;
struct aco_vs_prolog_info;
#ifndef ACO_IR_H
#define ACO_IR_H
-#include "aco_interface.h"
#include "aco_opcodes.h"
#include "aco_shader_info.h"
#include "aco_util.h"
-#include "nir.h"
+#include "util/compiler.h"
#include "ac_binary.h"
+#include "amd_family.h"
#include <algorithm>
#include <bitset>
#include <memory>
#include <vector>
+typedef struct nir_shader nir_shader;
+
namespace aco {
extern uint64_t debug_flags;
#include "aco_builder.h"
#include "aco_ir.h"
+#include "util/enum_operators.h"
+
#include <algorithm>
#include <map>
#include <vector>
#include "aco_ir.h"
+#include "util/u_debug.h"
+
#ifdef LLVM_AVAILABLE
#if defined(_MSC_VER) && defined(restrict)
#undef restrict
#include "aco_ir.h"
+#include "util/enum_operators.h"
+
#include <algorithm>
#include <array>
#include <bitset>
#include <map>
+#include <optional>
#include <set>
#include <unordered_map>
#include <vector>
-#include <optional>
namespace aco {
namespace {
#define ACO_SHADER_INFO_H
#include "ac_shader_args.h"
+#include "amd_family.h"
#include "shader_enums.h"
#ifdef __cplusplus
#include "aco_ir.h"
#include "util/memstream.h"
+#include "util/ralloc.h"
#include <array>
#include <map>