[LLVMdev] loads from a null address and optimizations

Zoltan Varga vargaz at gmail.com
Sat Sep 5 12:19:23 PDT 2009


  Currently, llvm treats the loads from a null address as unreachable code,
     load i32* null
is transformed by some optimization pass into

This presents problems in JIT compilers like mono which implement null
pointer checks by trapping SIGSEGV signals. It also
looks incorrect since it changes program behavior, which might be undefined
in general, but it is quite well defined on unix.
Is there a way to prevent llvm from doing this besides marking all loads as
volatile ?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090905/3cb32915/attachment.html>

More information about the llvm-dev mailing list