Go to file
Saleem Abdulrasool 5f25bc30d1 [CodeGen] tighten objc ivar invariant.load attribution
An ivar ofset cannot be marked as invariant load in all cases.  The ivar offset
is a lazily initialised constant, which is dependent on an objc_msgSend
invocation to perform a fixup of the offset.  If the load is being performed on
a method implemented by the class then this load can safely be marked as an
inviarant because a message must have been passed to the class at some point,
forcing the ivar offset to be resolved.

An additional heuristic that can be used to identify an invariant load would be
if the ivar offset base is a parameter to an objc method.  However, without the
parameters available at hand, this is currently not possible.

Reviewed-by: John McCall <rjmccall@apple.com>
Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
llvm-svn: 175386
2013-02-17 04:03:34 +00:00
clang [CodeGen] tighten objc ivar invariant.load attribution 2013-02-17 04:03:34 +00:00
clang-tools-extra Propagate changes through no-op transforms 2013-02-15 19:38:28 +00:00
compiler-rt [ASan] make variables unsigned to silence warnings - attempt 2 2013-02-15 19:22:49 +00:00
debuginfo-tests Harden this test a bit to work on the mac with ancient gdbs. 2013-01-17 20:09:50 +00:00
libclc Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
libcxx Bruce Mitchener: Minor typo fixes. 2013-02-15 15:37:50 +00:00
libcxxabi Bruce Mitchener: Typo fixes. 2013-02-15 15:48:49 +00:00
lld [Core,Driver,ELF] Differentiate static and dynamic executables. 2013-02-14 20:32:00 +00:00
lldb <rdar://problem/13121056> 2013-02-16 22:53:04 +00:00
llvm Use ArrayRef instead of a reference to a SmallVectorImpl. 2013-02-17 03:48:23 +00:00
polly capitalize SCEV to match the current naming convention 2013-02-15 21:26:53 +00:00