[LLVMdev] Order of operations

Chris Lattner sabre at nondot.org
Tue Mar 25 20:42:05 PDT 2008

On Mar 25, 2008, at 8:32 PM, Jonathan S. Shapiro wrote:

> Given variables a b c d of compatible scalar arithmetic types,  
> consider
> the expression:
> 	a + b + c + d
> There are multiple implementation orders for computing this sum, and  
> the
> one you want can be dependent on the source language specification. In
> particular, the + operation must not be considered commutative if  
> these
> are floating point values and we care about error ranges.
> It is not obvious to me from the IR specification how the front end  
> can
> specify prescriptively that some particular order of operation is
> required.
> I'm probably missing something very obvious here.

LLVM IR is three address code, not a tree form.  This requires the  
front-end to pick an ordering that works for it explicitly as it  
lowers to LLVM IR.


More information about the llvm-dev mailing list