intel/compiler: Pass single backend_shader argument to the fs_live_variables constructor
This removes the dependency of fs_live_variables on fs_visitor. The IR analysis framework requires the analysis result to be constructible with a single argument -- The second argument was redundant anyway. Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4012>
This commit is contained in:

committed by
Matt Turner

parent
d7e84cbb0f
commit
d0433971f9
@@ -126,7 +126,7 @@ fs_live_variables::setup_def_use()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bd->flag_use[0] |= inst->flags_read(v->devinfo) & ~bd->flag_def[0];
|
bd->flag_use[0] |= inst->flags_read(devinfo) & ~bd->flag_def[0];
|
||||||
|
|
||||||
/* Set def[] for this instruction */
|
/* Set def[] for this instruction */
|
||||||
if (inst->dst.file == VGRF) {
|
if (inst->dst.file == VGRF) {
|
||||||
@@ -255,22 +255,22 @@ fs_live_variables::compute_start_end()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fs_live_variables::fs_live_variables(fs_visitor *v, const cfg_t *cfg)
|
fs_live_variables::fs_live_variables(const backend_shader *s)
|
||||||
: v(v), cfg(cfg)
|
: devinfo(s->devinfo), cfg(s->cfg)
|
||||||
{
|
{
|
||||||
mem_ctx = ralloc_context(NULL);
|
mem_ctx = ralloc_context(NULL);
|
||||||
|
|
||||||
num_vgrfs = v->alloc.count;
|
num_vgrfs = s->alloc.count;
|
||||||
num_vars = 0;
|
num_vars = 0;
|
||||||
var_from_vgrf = rzalloc_array(mem_ctx, int, num_vgrfs);
|
var_from_vgrf = rzalloc_array(mem_ctx, int, num_vgrfs);
|
||||||
for (int i = 0; i < num_vgrfs; i++) {
|
for (int i = 0; i < num_vgrfs; i++) {
|
||||||
var_from_vgrf[i] = num_vars;
|
var_from_vgrf[i] = num_vars;
|
||||||
num_vars += v->alloc.sizes[i];
|
num_vars += s->alloc.sizes[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
vgrf_from_var = rzalloc_array(mem_ctx, int, num_vars);
|
vgrf_from_var = rzalloc_array(mem_ctx, int, num_vars);
|
||||||
for (int i = 0; i < num_vgrfs; i++) {
|
for (int i = 0; i < num_vgrfs; i++) {
|
||||||
for (unsigned j = 0; j < v->alloc.sizes[i]; j++) {
|
for (unsigned j = 0; j < s->alloc.sizes[i]; j++) {
|
||||||
vgrf_from_var[var_from_vgrf[i] + j] = i;
|
vgrf_from_var[var_from_vgrf[i] + j] = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -342,7 +342,7 @@ fs_visitor::calculate_live_intervals()
|
|||||||
if (this->live_intervals)
|
if (this->live_intervals)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this->live_intervals = new(mem_ctx) fs_live_variables(this, cfg);
|
this->live_intervals = new(mem_ctx) fs_live_variables(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
#include "util/bitset.h"
|
#include "util/bitset.h"
|
||||||
|
|
||||||
struct cfg_t;
|
struct cfg_t;
|
||||||
class fs_visitor;
|
struct backend_shader;
|
||||||
|
|
||||||
namespace brw {
|
namespace brw {
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ public:
|
|||||||
|
|
||||||
DECLARE_RALLOC_CXX_OPERATORS(fs_live_variables)
|
DECLARE_RALLOC_CXX_OPERATORS(fs_live_variables)
|
||||||
|
|
||||||
fs_live_variables(fs_visitor *v, const cfg_t *cfg);
|
fs_live_variables(const backend_shader *s);
|
||||||
~fs_live_variables();
|
~fs_live_variables();
|
||||||
|
|
||||||
bool vars_interfere(int a, int b) const;
|
bool vars_interfere(int a, int b) const;
|
||||||
@@ -130,10 +130,9 @@ protected:
|
|||||||
void compute_live_variables();
|
void compute_live_variables();
|
||||||
void compute_start_end();
|
void compute_start_end();
|
||||||
|
|
||||||
fs_visitor *v;
|
const struct gen_device_info *devinfo;
|
||||||
const cfg_t *cfg;
|
const cfg_t *cfg;
|
||||||
void *mem_ctx;
|
void *mem_ctx;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace brw */
|
} /* namespace brw */
|
||||||
|
Reference in New Issue
Block a user