projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nir: Add alignment information to cast derefs
[mesa.git]
/
src
/
compiler
/
nir
/
nir.h
diff --git
a/src/compiler/nir/nir.h
b/src/compiler/nir/nir.h
index cbf5c0746c351fe8e8ad6b2b1765db51bcd45344..16733fd5e5067a9264f5dcf292fb2f340c5efed1 100644
(file)
--- a/
src/compiler/nir/nir.h
+++ b/
src/compiler/nir/nir.h
@@
-1462,6
+1462,8
@@
typedef struct {
struct {
unsigned ptr_stride;
struct {
unsigned ptr_stride;
+ unsigned align_mul;
+ unsigned align_offset;
} cast;
};
} cast;
};
@@
-3855,6
+3857,9
@@
void nir_print_shader_annotated(nir_shader *shader, FILE *fp, struct hash_table
void nir_print_instr(const nir_instr *instr, FILE *fp);
void nir_print_deref(const nir_deref_instr *deref, FILE *fp);
void nir_print_instr(const nir_instr *instr, FILE *fp);
void nir_print_deref(const nir_deref_instr *deref, FILE *fp);
+/** Shallow clone of a single instruction. */
+nir_instr *nir_instr_clone(nir_shader *s, const nir_instr *orig);
+
/** Shallow clone of a single ALU instruction. */
nir_alu_instr *nir_alu_instr_clone(nir_shader *s, const nir_alu_instr *orig);
/** Shallow clone of a single ALU instruction. */
nir_alu_instr *nir_alu_instr_clone(nir_shader *s, const nir_alu_instr *orig);
@@
-4073,7
+4078,8
@@
typedef enum {
bool nir_lower_array_deref_of_vec(nir_shader *shader, nir_variable_mode modes,
nir_lower_array_deref_of_vec_options options);
bool nir_lower_array_deref_of_vec(nir_shader *shader, nir_variable_mode modes,
nir_lower_array_deref_of_vec_options options);
-bool nir_lower_indirect_derefs(nir_shader *shader, nir_variable_mode modes);
+bool nir_lower_indirect_derefs(nir_shader *shader, nir_variable_mode modes,
+ uint32_t max_lower_array_len);
bool nir_lower_locals_to_regs(nir_shader *shader);
bool nir_lower_locals_to_regs(nir_shader *shader);
@@
-4780,7
+4786,10
@@
bool nir_opt_trivial_continues(nir_shader *shader);
bool nir_opt_undef(nir_shader *shader);
bool nir_opt_undef(nir_shader *shader);
-bool nir_opt_vectorize(nir_shader *shader);
+typedef bool (*nir_opt_vectorize_cb)(const nir_instr *a, const nir_instr *b,
+ void *data);
+bool nir_opt_vectorize(nir_shader *shader, nir_opt_vectorize_cb filter,
+ void *data);
bool nir_opt_conditional_discard(nir_shader *shader);
bool nir_opt_conditional_discard(nir_shader *shader);