intel/nir: Call nir_metadata_preserve on !progress
[mesa.git] / src / intel / compiler / brw_shader.h
index ebf6c2f3674dd48d2ab1e3e1590e27118282d170..984026f771decaefd0c6a747c0ebd5d258bdaa3c 100644 (file)
 #define BRW_SHADER_H
 
 #include <stdint.h>
-#include "brw_ir.h"
+#include "brw_cfg.h"
 #include "brw_compiler.h"
 #include "compiler/nir/nir.h"
 
-struct cfg_t;
-
 #ifdef __cplusplus
+#include "brw_ir_analysis.h"
 #include "brw_ir_allocator.h"
 
 enum instruction_scheduler_mode {
@@ -70,6 +69,8 @@ public:
    exec_list instructions;
 
    cfg_t *cfg;
+   BRW_ANALYSIS(idom_analysis, brw::idom_tree,
+                const backend_shader *) idom_analysis;
 
    gl_shader_stage stage;
    bool debug_enabled;
@@ -78,14 +79,14 @@ public:
 
    brw::simple_allocator alloc;
 
-   virtual void dump_instruction(backend_instruction *inst) = 0;
-   virtual void dump_instruction(backend_instruction *inst, FILE *file) = 0;
-   virtual void dump_instructions();
-   virtual void dump_instructions(const char *name);
+   virtual void dump_instruction(const backend_instruction *inst) const = 0;
+   virtual void dump_instruction(const backend_instruction *inst, FILE *file) const = 0;
+   virtual void dump_instructions() const;
+   virtual void dump_instructions(const char *name) const;
 
    void calculate_cfg();
 
-   virtual void invalidate_live_intervals() = 0;
+   virtual void invalidate_analysis(brw::analysis_dependency_class c);
 };
 
 bool brw_texture_offset(const nir_tex_instr *tex, unsigned src,