Bjarke Roune via llvm-dev
2016-Apr-12 19:05 UTC
[llvm-dev] ScalarEvolution "add nsw" question
Hi Johannes, Sanjoy has given you great information already. On Sun, Apr 10, 2016 at 5:19 PM, Sanjoy Das <sanjoy at playingwithpointers.com> wrote:> Johannes Doerfert wrote: > > Is there any plan to use e.g., post-dominance information to > > propagate wrapping flags? > > None that I'm aware of. > > > If x +nsw y post-dominates the entry block > > [and is used in some side-effect instruction] the SCEV could be marked > > as non-wrapping, couldn't it? > > Yes, but we have to be careful to account for exceptions, infinitely > looping functions, exit(0) etc. I.e. in > > void foo() { > use(x + y); > exit(0); > use(x +nsw y); > } > > the nsw in the later x+y cannot be transferred to the former x+y > (assume use is a side effecting use). > > The code I wrote to handle this could be made more powerful, e.g. byintroducing an analysis pass for strong post-dominance (as opposed to the usual kind of post-dominance). There was a brief amount of discussion on this a while back: https://groups.google.com/forum/#!topic/llvm-dev/CBJY51__wOE I don't know if there's been any developments on that since then. Bjarke -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160412/7ed21a02/attachment.html>
Johannes Doerfert via llvm-dev
2016-Apr-12 19:57 UTC
[llvm-dev] ScalarEvolution "add nsw" question
Hi Bjarke, Thanks for your response. I agree that Sanjoy's email already answered my question. To be honest, I am not 100% sure about the loop code and the consequences but that doesn't matter to much at the moment. What matters is that I have made progress on explaining the mismatch between the ScalarEvolution results and what I would have expected, or better, liked. At the moment I think that the context in-sensitivity of ScalarEvolution is what is preventing me from the results I would like to see. Therefor, I have to look at the IR during Polly's context sensitive analysis/modeling step. As our "context" includes information about possibly "non-returning function calls", infinite loops, etc. I think that should allow to get precise but also sound results. Thank you both again, Johannes On 04/12, 'Bjarke Roune' via Polly Development wrote:> Hi Johannes, > > Sanjoy has given you great information already. > > On Sun, Apr 10, 2016 at 5:19 PM, Sanjoy Das <sanjoy at playingwithpointers.com> > wrote: > > > Johannes Doerfert wrote: > > > Is there any plan to use e.g., post-dominance information to > > > propagate wrapping flags? > > > > None that I'm aware of. > > > > > If x +nsw y post-dominates the entry block > > > [and is used in some side-effect instruction] the SCEV could be marked > > > as non-wrapping, couldn't it? > > > > Yes, but we have to be careful to account for exceptions, infinitely > > looping functions, exit(0) etc. I.e. in > > > > void foo() { > > use(x + y); > > exit(0); > > use(x +nsw y); > > } > > > > the nsw in the later x+y cannot be transferred to the former x+y > > (assume use is a side effecting use). > > > > The code I wrote to handle this could be made more powerful, e.g. by > introducing an analysis pass for strong post-dominance (as opposed to the > usual kind of post-dominance). There was a brief amount of discussion on > this a while back: > > https://groups.google.com/forum/#!topic/llvm-dev/CBJY51__wOE > > I don't know if there's been any developments on that since then. > > Bjarke > > -- > You received this message because you are subscribed to the Google Groups "Polly Development" group. > To unsubscribe from this group and stop receiving emails from it, send an email to polly-dev+unsubscribe at googlegroups.com. > For more options, visit https://groups.google.com/d/optout.-- Johannes Doerfert Researcher / PhD Student Compiler Design Lab (Prof. Hack) Saarland University, Computer Science Building E1.3, Room 4.31 Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de Fax. +49 (0)681 302-3065 : http://www.cdl.uni-saarland.de/people/doerfert -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 213 bytes Desc: Digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160412/d0bacbb5/attachment.sig>
Johannes Doerfert via llvm-dev
2016-Apr-13 11:51 UTC
[llvm-dev] ScalarEvolution "add nsw" question
Replace context with flow in the last mail... sry. On 04/12, Johannes Doerfert via llvm-dev wrote:> Hi Bjarke, > > Thanks for your response. I agree that Sanjoy's email already answered > my question. To be honest, I am not 100% sure about the loop code and > the consequences but that doesn't matter to much at the moment. What > matters is that I have made progress on explaining the mismatch between > the ScalarEvolution results and what I would have expected, or better, > liked. At the moment I think that the context in-sensitivity of > ScalarEvolution is what is preventing me from the results I would like > to see. Therefor, I have to look at the IR during Polly's context > sensitive analysis/modeling step. As our "context" includes information > about possibly "non-returning function calls", infinite loops, etc. I > think that should allow to get precise but also sound results. > > Thank you both again, > Johannes > > On 04/12, 'Bjarke Roune' via Polly Development wrote: > > Hi Johannes, > > > > Sanjoy has given you great information already. > > > > On Sun, Apr 10, 2016 at 5:19 PM, Sanjoy Das <sanjoy at playingwithpointers.com> > > wrote: > > > > > Johannes Doerfert wrote: > > > > Is there any plan to use e.g., post-dominance information to > > > > propagate wrapping flags? > > > > > > None that I'm aware of. > > > > > > > If x +nsw y post-dominates the entry block > > > > [and is used in some side-effect instruction] the SCEV could be marked > > > > as non-wrapping, couldn't it? > > > > > > Yes, but we have to be careful to account for exceptions, infinitely > > > looping functions, exit(0) etc. I.e. in > > > > > > void foo() { > > > use(x + y); > > > exit(0); > > > use(x +nsw y); > > > } > > > > > > the nsw in the later x+y cannot be transferred to the former x+y > > > (assume use is a side effecting use). > > > > > > The code I wrote to handle this could be made more powerful, e.g. by > > introducing an analysis pass for strong post-dominance (as opposed to the > > usual kind of post-dominance). There was a brief amount of discussion on > > this a while back: > > > > https://groups.google.com/forum/#!topic/llvm-dev/CBJY51__wOE > > > > I don't know if there's been any developments on that since then. > > > > Bjarke > > > > -- > > You received this message because you are subscribed to the Google Groups "Polly Development" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to polly-dev+unsubscribe at googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > -- > > Johannes Doerfert > Researcher / PhD Student > > Compiler Design Lab (Prof. Hack) > Saarland University, Computer Science > Building E1.3, Room 4.31 > > Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de > Fax. +49 (0)681 302-3065 : http://www.cdl.uni-saarland.de/people/doerfert> _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- Johannes Doerfert Researcher / PhD Student Compiler Design Lab (Prof. Hack) Saarland University, Computer Science Building E1.3, Room 4.31 Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de Fax. +49 (0)681 302-3065 : http://www.cdl.uni-saarland.de/people/doerfert -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 213 bytes Desc: Digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160413/8c83986a/attachment.sig>