X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fnir%2Fnir.h;h=16733fd5e5067a9264f5dcf292fb2f340c5efed1;hb=878a8daca6bfc856308dda7d265964d93feb05ae;hp=cbf5c0746c351fe8e8ad6b2b1765db51bcd45344;hpb=479d9c97eb2c85b7df81f39281867c5559aa0bba;p=mesa.git diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index cbf5c0746c3..16733fd5e50 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -1462,6 +1462,8 @@ typedef struct { struct { unsigned ptr_stride; + unsigned align_mul; + unsigned align_offset; } 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); +/** 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); @@ -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_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); @@ -4780,7 +4786,10 @@ bool nir_opt_trivial_continues(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);