------- Comment #2 from jakub at gcc dot gnu dot org  2007-11-09 12:15 -------
I think whether the modulus will be bigger or smaller is terribly hard to
estimate.  Really, if you file -Os regressions, you should at least compile the
whole kernel and compare whether the resulting sizes, rather than cherry
picking one example.  E.g. on ppc64 computing modulus rather than doing the
loop
is definitely much shorter.
IMHO if the kernel wants to avoid using modulus, it should just say so
unsigned long long foobar(unsigned long long ns)
{
  while(ns >= 1000000000L) {
    ns -= 1000000000L;
    asm ("" : "=r" (ns) : "0" (ns));
  }
  return ns;
}
will do that just fine.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34027

Reply via email to