Go to file
Sanjoy Das e57bf680ec [ImplicitNullChecks] Hoist trivial depdendencies if possible
When trying to convert a loading instruction into a FAULTING_LOAD, we
sometimes face code like this:

  if %R10 is not null:
    %R9<def> = MOV32ri Immediate
    %R9<def, tied> = AND32rm %R9, 0x20(%R10)
  else:
    goto TRAP

In these cases we would like to use the AND32rm instruction as the
faulting operation by hoisting the "depedency" def-ing %R9 also above
the control flow, transforming the program into:

  %R9<def> = MOV32ri Immediate
  %R9<def, tied> = FAULTING_LOAD_OP(AND32rm %R9, 0x20(%R10), FailPath: TRAP)

This change teaches ImplicitNullChecks to do the above, when safe.

llvm-svn: 273501
2016-06-22 22:16:51 +00:00
clang [driver][mips] Factor out findMIPSMultilibs code into separate functions. NFC 2016-06-22 20:00:50 +00:00
clang-tools-extra Fix build of ClangRenameTests 2016-06-21 20:30:40 +00:00
compiler-rt builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc configure: Remove device specific defines 2016-06-17 20:30:50 +00:00
libcxx Run list debug copy test in C++03. 2016-06-22 08:57:33 +00:00
libcxxabi Fix [libcxxabi] Fix warning about uninitialized const member. 2016-06-15 19:59:16 +00:00
libunwind [libunwind] Improve unwinder stack usage - III 2016-06-14 15:51:01 +00:00
lld [LTO] Update after API change in LLVM. NFC. 2016-06-22 19:51:05 +00:00
lldb Don't omit `this' from expression args if it couldn't be read, but warn loudly. 2016-06-22 17:32:17 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm [ImplicitNullChecks] Hoist trivial depdendencies if possible 2016-06-22 22:16:51 +00:00
openmp Fix bug in futex fast path inside kmp_csupport.c 2016-06-22 16:36:07 +00:00
parallel-libs Create parallel-libs subproject in LLVM 2016-06-22 18:24:46 +00:00
polly Fix separator in header comment 2016-06-22 16:29:33 +00:00