mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 17:00:09 +01:00
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:
parent
793a94d6b5
commit
22ee7eeb4e
1 changed files with 11 additions and 6 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue