On 2006-12-31 09:08:21 -0500, Richard Kenner wrote: > > In fact the wrap around range test is a standard idiom for "hand > > optimization" of range tests. > > It's also one that GCC uses internally, but you do it in *unsigned* > to avoid the undefined overflow.
If done in unsigned, this won't lead to any optimization, as unsigned arithmetic doesn't have overflows. So, if you write "a - 10" where a is unsigned, the compiler can't assume anything, whereas is a is signed, the compiler can assume that a >= INT_MIN + 10, reducing the range for a, and possibly allowing some optimizations. -- Vincent Lefèvre <[EMAIL PROTECTED]> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)