nir: Add a pass for lowering integer division by constants
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 28 Dec 2017 21:06:28 +0000 (13:06 -0800)
committerJason Ekstrand <jason@jlekstrand.net>
Thu, 13 Dec 2018 17:49:48 +0000 (17:49 +0000)
commit74492ebad9457679eb25d1a1159a674a988731d5
tree23f12a80c0ebc68ab3e792ae9baef75e025b58d6
parent090e28240795ce83ef63f2da768a80ca65b03ec7
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 ian.d.romanick@intel.com
src/compiler/Makefile.sources
src/compiler/nir/meson.build
src/compiler/nir/nir.h
src/compiler/nir/nir_opt_idiv_const.c [new file with mode: 0644]