[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