Attached are some patches for adding in an IR-level mechanism for representing fast-math flags, as discussed in my prior RFC. Patches include infrastructure, API support, textual and bitcode reader/writer support, example optimization, and test cases. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Fast-math-flags-added-to-FPMathOperator.patch Type: application/octet-stream Size: 4940 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Fast-math-interfaces-for-Instructions.patch Type: application/octet-stream Size: 7871 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0001.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Fast-math-flags-for-LLVM-IR-parsing-and-printing.patch Type: application/octet-stream Size: 5308 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0002.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Fast-math-flags-for-the-bitcode.patch Type: application/octet-stream Size: 3215 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0003.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Fast-math-test-case-for-bitcode-and-textual-reading-.patch Type: application/octet-stream Size: 5407 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0004.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0007-Fast-math-optimization-fold-multiply-by-zero.patch Type: application/octet-stream Size: 4406 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0005.obj> -------------- next part -------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: 0008-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch Type: application/octet-stream Size: 1488 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121115/4780f05d/attachment-0006.obj> -------------- next part --------------
Hi Michael, The patch looks good in general. But I'm a bit concerned about the textural representation about these flags. 'N', 'I', 'S', 'R', 'A' seem cryptic to me. Does it make sense to expand them a bit 'nnan', 'inf', etc.? They definitely need to be documented. Evan On Nov 15, 2012, at 10:17 AM, Michael Ilseman <milseman at apple.com> wrote:> Attached are some patches for adding in an IR-level mechanism for representing fast-math flags, as discussed in my prior RFC. Patches include infrastructure, API support, textual and bitcode reader/writer support, example optimization, and test cases. > > <0002-Fast-math-flags-added-to-FPMathOperator.patch> > <0003-Fast-math-interfaces-for-Instructions.patch> > <0004-Fast-math-flags-for-LLVM-IR-parsing-and-printing.patch> > <0005-Fast-math-flags-for-the-bitcode.patch> > <0006-Fast-math-test-case-for-bitcode-and-textual-reading-.patch> > <0007-Fast-math-optimization-fold-multiply-by-zero.patch> > <0008-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch> > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Nov 15, 2012, at 10:38 AM, Evan Cheng <evan.cheng at apple.com> wrote:> Hi Michael, > > The patch looks good in general. But I'm a bit concerned about the textural representation about these flags. 'N', 'I', 'S', 'R', 'A' seem cryptic to me. Does it make sense to expand them a bit 'nnan', 'inf', etc.? They definitely need to be documented. >I think it does make sense to expand them to be more readable. Also, the textual representation doesn't have to precisely follow the internal names. What about: nnan : no nans ninf : no infs nsz : no signed zeros ar: allow reciprocal fast : unsafe algebra (and implicitly all the others) I'll get started on documentation.> Evan > > On Nov 15, 2012, at 10:17 AM, Michael Ilseman <milseman at apple.com> wrote: > >> Attached are some patches for adding in an IR-level mechanism for representing fast-math flags, as discussed in my prior RFC. Patches include infrastructure, API support, textual and bitcode reader/writer support, example optimization, and test cases. >> >> <0002-Fast-math-flags-added-to-FPMathOperator.patch> >> <0003-Fast-math-interfaces-for-Instructions.patch> >> <0004-Fast-math-flags-for-LLVM-IR-parsing-and-printing.patch> >> <0005-Fast-math-flags-for-the-bitcode.patch> >> <0006-Fast-math-test-case-for-bitcode-and-textual-reading-.patch> >> <0007-Fast-math-optimization-fold-multiply-by-zero.patch> >> <0008-Fast-math-test-for-SimplifyInstruction-fold-multiply.patch> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >