intel/compiler: Fix C++ one definition rule violations

When building with "-flto" brw::block_data definitions
were colliding.

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Danylo Piliaiev
2019-10-25 19:49:43 +03:00
parent 3d529c1739
commit 12a8f2616a
4 changed files with 20 additions and 20 deletions

View File

@@ -53,7 +53,7 @@ using namespace brw;
*/
void
fs_live_variables::setup_one_read(struct block_data *bd, fs_inst *inst,
fs_live_variables::setup_one_read(struct fs_block_data *bd, fs_inst *inst,
int ip, const fs_reg &reg)
{
int var = var_from_reg(reg);
@@ -71,7 +71,7 @@ fs_live_variables::setup_one_read(struct block_data *bd, fs_inst *inst,
}
void
fs_live_variables::setup_one_write(struct block_data *bd, fs_inst *inst,
fs_live_variables::setup_one_write(struct fs_block_data *bd, fs_inst *inst,
int ip, const fs_reg &reg)
{
int var = var_from_reg(reg);
@@ -110,7 +110,7 @@ fs_live_variables::setup_def_use()
if (block->num > 0)
assert(cfg->blocks[block->num - 1]->end_ip == ip - 1);
struct block_data *bd = &block_data[block->num];
struct fs_block_data *bd = &block_data[block->num];
foreach_inst_in_block(fs_inst, inst, block) {
/* Set use[] for this instruction */
@@ -160,11 +160,11 @@ fs_live_variables::compute_live_variables()
cont = false;
foreach_block_reverse (block, cfg) {
struct block_data *bd = &block_data[block->num];
struct fs_block_data *bd = &block_data[block->num];
/* Update liveout */
foreach_list_typed(bblock_link, child_link, link, &block->children) {
struct block_data *child_bd = &block_data[child_link->block->num];
struct fs_block_data *child_bd = &block_data[child_link->block->num];
for (int i = 0; i < bitset_words; i++) {
BITSET_WORD new_liveout = (child_bd->livein[i] &
@@ -209,10 +209,10 @@ fs_live_variables::compute_live_variables()
cont = false;
foreach_block (block, cfg) {
const struct block_data *bd = &block_data[block->num];
const struct fs_block_data *bd = &block_data[block->num];
foreach_list_typed(bblock_link, child_link, link, &block->children) {
struct block_data *child_bd = &block_data[child_link->block->num];
struct fs_block_data *child_bd = &block_data[child_link->block->num];
for (int i = 0; i < bitset_words; i++) {
const BITSET_WORD new_def = bd->defout[i] & ~child_bd->defin[i];
@@ -233,7 +233,7 @@ void
fs_live_variables::compute_start_end()
{
foreach_block (block, cfg) {
struct block_data *bd = &block_data[block->num];
struct fs_block_data *bd = &block_data[block->num];
for (int w = 0; w < bitset_words; w++) {
BITSET_WORD livedefin = bd->livein[w] & bd->defin[w];
@@ -282,7 +282,7 @@ fs_live_variables::fs_live_variables(fs_visitor *v, const cfg_t *cfg)
end[i] = -1;
}
block_data= rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
block_data = rzalloc_array(mem_ctx, struct fs_block_data, cfg->num_blocks);
bitset_words = BITSET_WORDS(num_vars);
for (int i = 0; i < cfg->num_blocks; i++) {

View File

@@ -35,7 +35,7 @@ struct cfg_t;
namespace brw {
struct block_data {
struct fs_block_data {
/**
* Which variables are defined before being used in the block.
*
@@ -110,13 +110,13 @@ public:
/** @} */
/** Per-basic-block information on live variables */
struct block_data *block_data;
struct fs_block_data *block_data;
protected:
void setup_def_use();
void setup_one_read(struct block_data *bd, fs_inst *inst, int ip,
void setup_one_read(struct fs_block_data *bd, fs_inst *inst, int ip,
const fs_reg &reg);
void setup_one_write(struct block_data *bd, fs_inst *inst, int ip,
void setup_one_write(struct fs_block_data *bd, fs_inst *inst, int ip,
const fs_reg &reg);
void compute_live_variables();
void compute_start_end();

View File

@@ -71,7 +71,7 @@ vec4_live_variables::setup_def_use()
assert(cfg->blocks[block->num - 1]->end_ip == ip - 1);
foreach_inst_in_block(vec4_instruction, inst, block) {
struct block_data *bd = &block_data[block->num];
struct vec4_block_data *bd = &block_data[block->num];
/* Set use[] for this instruction */
for (unsigned int i = 0; i < 3; i++) {
@@ -137,11 +137,11 @@ vec4_live_variables::compute_live_variables()
cont = false;
foreach_block_reverse (block, cfg) {
struct block_data *bd = &block_data[block->num];
struct vec4_block_data *bd = &block_data[block->num];
/* Update liveout */
foreach_list_typed(bblock_link, child_link, link, &block->children) {
struct block_data *child_bd = &block_data[child_link->block->num];
struct vec4_block_data *child_bd = &block_data[child_link->block->num];
for (int i = 0; i < bitset_words; i++) {
BITSET_WORD new_liveout = (child_bd->livein[i] &
@@ -187,7 +187,7 @@ vec4_live_variables::vec4_live_variables(const simple_allocator &alloc,
mem_ctx = ralloc_context(NULL);
num_vars = alloc.total_size * 8;
block_data = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
block_data = rzalloc_array(mem_ctx, struct vec4_block_data, cfg->num_blocks);
bitset_words = BITSET_WORDS(num_vars);
for (int i = 0; i < cfg->num_blocks; i++) {
@@ -288,7 +288,7 @@ vec4_visitor::calculate_live_intervals()
this->live_intervals = new(mem_ctx) vec4_live_variables(alloc, cfg);
foreach_block (block, cfg) {
struct block_data *bd = &live_intervals->block_data[block->num];
struct vec4_block_data *bd = &live_intervals->block_data[block->num];
for (int i = 0; i < live_intervals->num_vars; i++) {
if (BITSET_TEST(bd->livein, i)) {

View File

@@ -33,7 +33,7 @@
namespace brw {
struct block_data {
struct vec4_block_data {
/**
* Which variables are defined before being used in the block.
*
@@ -70,7 +70,7 @@ public:
int bitset_words;
/** Per-basic-block information on live variables */
struct block_data *block_data;
struct vec4_block_data *block_data;
protected:
void setup_def_use();