Go to file
Quentin Colombet 4e1d389ac5 [X86] Model FAULTING_LOAD_OP as a terminator and branch.
This operation may branch to the handler block and we do not want it
to happen anywhere within the basic block.
Moreover, by marking it "terminator and branch" the machine verifier
does not wrongly assume (because of AnalyzeBranch not knowing better)
the branch is analyzable. Indeed, the target was seeing only the
unconditional branch and not the faulting load op and thought it was
a simple unconditional block.
The machine verifier was complaining because of that and moreover,
other optimizations could have done wrong transformation!

In the process, simplify the representation of the handler block in
the faulting load op. Now, we directly reference the handler block
instead of using a label. This has the benefits of:
1. MC knows how to issue a label for a BB, so leave that to it.
2. Accessing the target BB from its label is painful, whereas it is
   direct from a MBB operand.

Note: The 2 bytes offset in implicit-null-check.ll comes from the
fact the unconditional jumps are not removed anymore, as the whole
terminator sequence is not analyzable anymore.

Will fix it in a subsequence commit.

llvm-svn: 268327
2016-05-02 22:58:54 +00:00
clang [CMake] Enable LIBCXX HEADERS in Apple-Stage2.cmake 2016-05-02 22:43:23 +00:00
clang-tools-extra [clang-tidy] Cleaning namespaces to be more consistant across checkers. 2016-05-02 18:00:29 +00:00
compiler-rt [compiler-rt] adjust platform_limits_linux.cc #include of posix_types 2016-05-02 19:10:48 +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 prepare-builtins: Remove call to getGlobalContext() 2016-04-15 14:18:58 +00:00
libcxx Cleanup warnings and remove use of __builtin_va_list in depr.c.headers 2016-05-02 20:08:16 +00:00
libcxxabi Enable testing for static libc++abi 2016-04-19 12:47:38 +00:00
libunwind unwind: remove last instance of -Wexpansion-to-defined 2016-04-26 01:11:29 +00:00
lld Simplify. NFC. 2016-05-02 22:52:15 +00:00
lldb debugserver should fflush its log stream in FileLogCallback, now it does. 2016-05-02 22:53:08 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm [X86] Model FAULTING_LOAD_OP as a terminator and branch. 2016-05-02 22:58:54 +00:00
openmp Remove architecture dependent Hwloc DEBUG section 2016-04-25 21:11:26 +00:00
polly Typo: ToComplex -> TooComplex. NFC. 2016-05-02 12:25:36 +00:00