nir/algebraic: #define around structure definitions

Previously, we couldn't generate two algebraic passes in the same file
because of multiple structure definitions.  To solve this, we play the
age-old header file trick and just #define around it.

Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Jason Ekstrand 2015-03-23 17:22:44 -07:00
parent 793a94d6b5
commit 22ee7eeb4e

View file

@ -181,12 +181,23 @@ _algebraic_pass_template = mako.template.Template("""
#include "nir.h"
#include "nir_search.h"
#ifndef NIR_OPT_ALGEBRAIC_STRUCT_DEFS
#define NIR_OPT_ALGEBRAIC_STRUCT_DEFS
struct transform {
const nir_search_expression *search;
const nir_search_value *replace;
unsigned condition_offset;
};
struct opt_state {
void *mem_ctx;
bool progress;
const bool *condition_flags;
};
#endif
% for (opcode, xform_list) in xform_dict.iteritems():
% for xform in xform_list:
${xform.search.render()}
@ -200,12 +211,6 @@ static const struct transform ${pass_name}_${opcode}_xforms[] = {
};
% endfor
struct opt_state {
void *mem_ctx;
bool progress;
const bool *condition_flags;
};
static bool
${pass_name}_block(nir_block *block, void *void_state)
{