PATCH: do ?: lowering to selects less wrong

Nick Lewycky nlewycky at google.com
Tue Nov 5 16:54:28 PST 2013


When lowering "cond ? X : Y" we do some safety checks to see whether we can
instead emit both X and Y and use a llvm select instruction to choose
between them. This code is insufficiently safe, and introducing loads into
a program that didn't load is a bad idea. For example, it could be TLS. It
could be a non-volatile auto in another function that isn't the current
function (think lambdas).

Don't do this here. LLVM knows how to do this properly.

Patch attached, please review!

Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131105/32fd9356/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loads-arent-cheap-1.patch
Type: text/x-patch
Size: 2158 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131105/32fd9356/attachment.bin>


More information about the cfe-commits mailing list