(j3.2006) BEQ, BNE?

Dan Nagle dannagle
Sun Feb 3 07:58:20 EST 2013


For integers, how difficult is it to understand the idiom

abs( i) < 1


abs( i - j) < 1
On Feb 3, 2013, at 05:12 , Robert Corbett <robert.corbett at oracle.com> wrote:

> On 02/01/13 12:07, Van Snyder wrote:
>> On Fri, 2013-02-01 at 10:10 -0700, Keith Bierman wrote:
>>> The no so obvious thing is what cost(s) that may impose on the
>>> implementors. Folks who were certain there were fixed numbers of
>>> intrinsics may have "hard" limits, the interactions with optimization
>>> and debuggers, etc. Different implementors could face very different
>>> costs (from what very little I recall of the NAG compiler, once upon a
>>> time I think it would have been small for Malcolm). For some other
>>> compilers, not so small (not huge, but the combination of scarce
>>> development, integration and test resources for most compiler groups
>>> should never be underestimated. The more highly optimizing the
>>> environment, the more likely it is that even trivial changes will have
>>> more considerable impact).
>> Bob Corbett argued that if one has written
>>   if ( popcnt(ieor(i,j)) == 0 )
>> or
>>   if ( BLE(i,j) .and. BLE(j,i) )
>> or
>>   if ( BGE(i,j) .and. BGE(j,i) )
>> or
>>   any of the dozen or so other ways to say the same thing,
>> a competent optimizing compiler will have optimized "the idioms" to an
>> unsigned test for equality.
>> How is that "easier" than implementing BEQ and BNE?
> It does not require changing the compiler front-end other than at the final step 
> when the next lower level of intermediate code is produced.  Adding a new 
> intrinsic function to Oracle Solaris Studio Fortran requires extending the 
> front-end intermediate code, adding new entries to the intrinsic function 
> table,  adding new code for semantic checking, extending the module file format, 
> updating the module file reader and writer, and updating the constant folding 
> routines.  I might well have missed some steps.
> Bob Corbett
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3


Dan Nagle

More information about the J3 mailing list