Mesa (master): i965: Add invalidate_cfg parameter to invalidate_live_intervals().
Matt Turner
mattst88 at kemper.freedesktop.org
Fri Aug 22 17:20:38 UTC 2014
Module: Mesa
Branch: master
Commit: e0aa45768c6bda947b645ae6962054673937a55f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0aa45768c6bda947b645ae6962054673937a55f
Author: Matt Turner <mattst88 at gmail.com>
Date: Sat Jul 12 17:49:32 2014 -0700
i965: Add invalidate_cfg parameter to invalidate_live_intervals().
Will let us avoid invalidating the CFG if the optimization pass has
removed instructions using the new basic block methods.
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
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 d0422c3d..e42b93a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -328,7 +328,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 c964505..e7ecb0f 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
@@ -290,12 +290,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 35a2b96..342cdb3 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.h
+++ b/src/mesa/drivers/dri/i965/brw_shader.h
@@ -182,7 +182,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 f0239cb..f8313c1 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -378,7 +378,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 opt_reduce_swizzle();
bool dead_code_eliminate();
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 5bc5d77..7cd1dd6 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_live_variables.cpp
@@ -268,11 +268,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
More information about the mesa-commit
mailing list