[LLVMdev] overflow + saturation stuff

Paul Schlie schlie at comcast.net
Sun Feb 8 17:54:58 PST 2009


Are overflow behavior tags meant to enable the specification of a
particular instruction's required or presumed overflow behavior?

If a required overflow behavior, then it follows that the target must
correspondingly implement the behavior; neither natively or emulated?

If a presumed overflow behavior, is the target meant to preferably implement
or emulate the same; or is it merely meant to enable optimizations which may
or may not be representative of the code's target mapped behavior?

Regardless, if the target is potentially meant to implement the behavior;
it follows that LLVM's assembly level representation must be able to
discriminate between operations having differing semantics specified?

For example processors like TI's C6X family DSP's support both saturating
and 2's-comp operations; and although likely less frequently required, and
typically not directly supported by any HLL languages, being able to specify
target neutral in-line assembly 1's-comp end-around-carry operations can be
helpful on occasion, so would be nice to see as well.





More information about the llvm-dev mailing list