llvm/lib/Transforms
Chris Lattner 78f7a25f98 prevent jump threading from merging blocks when their address is
taken (and used!).  This prevents merging the blocks (invalidating
the block addresses) in a case like this:

#define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; })

void foo() {
  printf("%p\n", _THIS_IP_);
  printf("%p\n", _THIS_IP_);
  printf("%p\n", _THIS_IP_);
}

which fixes PR4151.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125829 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18 04:43:06 +00:00
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
InstCombine have instcombine preserve nsw/nuw/exact when sinking 2011-02-17 23:01:49 +00:00
Instrumentation Implementation of path profiling. 2011-01-29 01:09:53 +00:00
IPO convert ConstantVector::get to use ArrayRef. 2011-02-15 00:14:00 +00:00
Scalar prevent jump threading from merging blocks when their address is 2011-02-18 04:43:06 +00:00
Utils Don't unroll loops whose header block's address is taken. 2011-02-18 04:25:21 +00:00
Makefile Revert r100896 and around - this breaks the only mingw32 buildbot we have. 2010-04-15 19:51:42 +00:00