On Fri, 27 Feb 2009, Diego Novillo wrote: > We will be reading IL containing both overflow and non-overflow > operations. We should define the combination rules for them.
The rules are simple: * No transformation (of arithmetic operations, which is what we are discussing here) may change defined behavior for given inputs to undefined behavior for those same inputs. (The reverse transformation is permitted. For example, a mixed set of addition/subtraction operations might usefully be converted to all overflow-defined operations to allow the operands to be rearranged and cancellation to take place. For example, if both versions of a+b with the same operands are in use at some point, the overflow-undefined version need not be computed, only the overflow-wraps version.) * No transformation may change defined behavior for given inputs to different, defined behavior for those inputs. -- Joseph S. Myers jos...@codesourcery.com