Chad Rosier
2013-Aug-06 15:18 UTC
[LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
The specific code I'm looking at does not have any function calls. The "lots of FP math" is just a series of FP addition, subtraction and division. On Tue, Aug 6, 2013 at 11:03 AM, David Tweed <david.tweed at arm.com> wrote:> Hi,**** > > ** ** > > I imagine this optimization is for FP math stuff that doesn't involve > functions which might set errno (or when we've specified we don't care > about that)?**** > > ** ** > > Cheers, > Dave**** > > ** ** > > *From:* llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] *On > Behalf Of *Chad Rosier > *Sent:* 06 August 2013 15:46 > *To:* llvmdev > *Subject:* [LLVMdev] Potential SimplifyCFG optimization; hammock to > diamond transformation**** > > ** ** > > All, > I have some code that looks like the following: > > { > double a, b, c; > for (...) { > ... > a = lots of FP math; > b = lots of FP math; > c = lots of FP math; > if (cond) { > a = 0.0; > b = 0.1; > c = 0.2; > } > ... > } > } > > Could we not convert the hammock into a diamond and move the initial > computation of a, b, and c into the else block. Something like this: > > { > double a, b, c; > for (...) { > ... > if (cond) { > a = 0.0; > b = 0.1; > c = 0.2; > } else { > a = lots of FP math; > b = lots of FP math; > c = lots of FP math; > } > ... > } > } > > Does a similar optimization exist? If not, would the SimplifyCFG pass be > an appropriate home for such an optimization? > > Chad**** >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130806/7a829051/attachment.html>
Maybe Matching Threads
- [LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
- [LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
- [LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
- [LLVMdev] Potential SimplifyCFG optimization; hammock to diamond transformation
- [LLVMdev] How to use LLVM optimizations with clang