mesa: Micro-optimize _mesa_is_valid_prim_mode
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 7 Nov 2014 06:51:45 +0000 (22:51 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 15 Jan 2015 01:09:50 +0000 (17:09 -0800)
commit0a0d2c944372590721f5accc74d03789c1fa6098
treec50dc730573da5a8d689a5cbaa5139d89680e869
parentead200d156c887bed77645ecba7f36ba0be14b8c
mesa: Micro-optimize _mesa_is_valid_prim_mode

You would not believe the mess GCC 4.8.3 generated for the old
switch-statement.

On Bay Trail-D using Fedora 20 compile flags (-m64 -O2 -mtune=generic
for 64-bit and -m32 -march=i686 -mtune=atom for 32-bit), affects
Gl32Batch7:

32-bit: Difference at 95.0% confidence -0.37374% +/- 0.184057% (n=40)
64-bit: Difference at 95.0% confidence 0.966722% +/- 0.338442% (n=40)

The regression on 32-bit is odd.  Callgrind says the caller,
_mesa_is_valid_prim_mode is faster.  Before it says 2,293,760
cycles, and after it says 917,504.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/api_validate.c