diff options
author | Jason Ekstrand <[email protected]> | 2017-12-28 13:06:28 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-12-13 17:49:48 +0000 |
commit | 74492ebad9457679eb25d1a1159a674a988731d5 (patch) | |
tree | 23f12a80c0ebc68ab3e792ae9baef75e025b58d6 /src/compiler/nir/nir.h | |
parent | 090e28240795ce83ef63f2da768a80ca65b03ec7 (diff) |
nir: Add a pass for lowering integer division by constants
It's a reasonably well-known fact in the world of compilers that integer
divisions by constants can be replaced by a multiply, an add, and some
shifts. This commit adds such an optimization to NIR for easiest case
of udiv. Other division operations will be added in following commits.
In order to provide some additional driver control, the pass takes a
minimum bit size to optimize.
Reviewed-by: Ian Romanick [email protected]
Diffstat (limited to 'src/compiler/nir/nir.h')
-rw-r--r-- | src/compiler/nir/nir.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index a2c68d66aea..e8be2e101cc 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -3174,6 +3174,8 @@ bool nir_opt_find_array_copies(nir_shader *shader); bool nir_opt_gcm(nir_shader *shader, bool value_number); +bool nir_opt_idiv_const(nir_shader *shader, unsigned min_bit_size); + bool nir_opt_if(nir_shader *shader); bool nir_opt_intrinsics(nir_shader *shader); |