[LLVMdev] Order of operations

Jonathan S. Shapiro shap at eros-os.com
Tue Mar 25 20:57:38 PDT 2008

On Tue, 2008-03-25 at 20:42 -0700, Chris Lattner wrote:

> 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.

I got that much. But I assume that optimization passes, if used, are
entitled to rewrite the IR. For example: ANSI C requires that certain
types of parenthesization be honored rigorously, while other operations
can legally be combined or reordered. How does the front end specify in
it's IR emission which kinds are which, so that the optimizer knows
which parts it is not permitted to re-arrange?

More information about the llvm-dev mailing list