[PATCH] D21041: [GVN] PRE can't hoist loads across calls in general.

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 6 16:44:30 PDT 2016


sanjoy added a subscriber: broune.
sanjoy added a comment.

One possibility is writing a "strong post dominance" analysis pass that was brought up by @broune earlier [0].  If it looks like a lot of LLVM's transform passes are buggy in the face of `exit(0)` or throwing or inf-looping calls, perhaps we will be okay paying the cost of computing and preserving this analysis?

We also need some infrastructural work around "halting" or "always_returns" attributes; I suspect the bug you're fixing here will also occur if the function being called does `volatile int i = 0; while (true) i++;` instead of `exit(0)`.

[0]: http://lists.llvm.org/pipermail/llvm-dev/2015-July/087744.html


http://reviews.llvm.org/D21041





More information about the llvm-commits mailing list