Quoting Pedro Alves <pe...@codesourcery.com>:
On Tuesday 23 November 2010 20:09:52, Joern Rennecke wrote:
If we changed BITS_PER_UNIT into an ordinary piece-of-data 'hook', this
would not only cost a data load from the target vector, but would also
inhibit optimizations that replace division / modulo / multiply with shift
or mask operations.
Have you done any sort of measurement, to see if what is lost
is actually noticeable in practice?
No, I haven't.
On an i686 it's probably not measurable. On a host with a slow software
divide it might be, if the code paths that require these operations are
exercised a lot - that would also depend on the source code being compiled.
Also, these separate hooks for common operations can make the code more
readable, particularly in the bits_in_units_ceil case.
I.e.
foo_var = ((bitsize + targetm.bits_per_unit () - 1)
/ targetm.bits_per_unit ());
vs.
foo_var = targetm.bits_in_units_ceil (bitsize);