[Mesa-dev] [PATCH 12/20] i965: Add invalidate_cfg parameter to invalidate_live_intervals().
Matt Turner
mattst88 at gmail.com
Thu Jul 24 19:54:19 PDT 2014
Will let us avoid invalidating the CFG if the optimization pass has
removed instructions using the new basic block methods.
---
src/mesa/drivers/dri/i965/brw_fs.h | 2 +-
src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp | 5 +++--
src/mesa/drivers/dri/i965/brw_shader.h | 2 +-
src/mesa/drivers/dri/i965/brw_vec4.h | 2 +-
src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp | 5 +++--
5 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 009a6d5..6fe23d2 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -329,7 +329,7 @@ public:
void move_uniform_array_access_to_pull_constants();
void assign_constant_locations();
void demote_pull_constants();
- void invalidate_live_intervals();
+ void invalidate_live_intervals(bool invalidate_cfg = true);
void calculate_live_intervals();
void calculate_register_pressure();
bool opt_algebraic();
diff --git a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
index 4b23405..88b4d39 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
@@ -289,12 +289,13 @@ fs_live_variables::~fs_live_variables()
}
void
-fs_visitor::invalidate_live_intervals()
+fs_visitor::invalidate_live_intervals(bool __invalidate_cfg)
{
ralloc_free(live_intervals);
live_intervals = NULL;
- invalidate_cfg();
+ if (__invalidate_cfg)
+ invalidate_cfg();
}
/**
diff --git a/src/mesa/drivers/dri/i965/brw_shader.h b/src/mesa/drivers/dri/i965/brw_shader.h
index d174d5c..cbb3b17 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -184,7 +184,7 @@ public:
void assign_common_binding_table_offsets(uint32_t next_binding_table_offset);
- virtual void invalidate_live_intervals() = 0;
+ virtual void invalidate_live_intervals(bool invalidate_cfg = true) = 0;
};
uint32_t brw_texture_offset(struct gl_context *ctx, ir_constant *offset);
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index 7be27a0..c8b80f1 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -379,7 +379,7 @@ public:
void split_uniform_registers();
void pack_uniform_registers();
void calculate_live_intervals();
- void invalidate_live_intervals();
+ void invalidate_live_intervals(bool invalidate_cfg = true);
void split_virtual_grfs();
bool dead_code_eliminate();
bool virtual_grf_interferes(int a, int b);
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
index 265b064..c8a0c90 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
@@ -267,11 +267,12 @@ vec4_visitor::calculate_live_intervals()
}
void
-vec4_visitor::invalidate_live_intervals()
+vec4_visitor::invalidate_live_intervals(bool __invalidate_cfg)
{
live_intervals_valid = false;
- invalidate_cfg();
+ if (__invalidate_cfg)
+ invalidate_cfg();
}
bool
--
1.8.5.5
More information about the mesa-dev
mailing list