1. [CVP] After proving that @llvm.with.overflow()/@llvm.sat() don't (details)
  2. [libunwind][Android] Fix findUnwindSections for ARM EHABI Bionic (details)
  3. scudo: Update TLS_SLOT_SANITIZER value. (details)
Commit 284b6d7f4da2260d996834fd1fabec461310bc96 by lebedev.ri
[CVP] After proving that @llvm.with.overflow()/@llvm.sat() don't
overflow, also try to prove other no-wrap
Summary: CVP, unlike InstCombine, does not run till exaustion. It only
does a single pass.
When dealing with those special binops, if we prove that they can safely
be demoted into their usual binop form, we do set the no-wrap we
deduced. But when dealing with usual binops, we try to deduce both
So if we convert e.g. @llvm.uadd.with.overflow() to `add nuw`, we won't
attempt to check whether it can be `add nuw nsw`.
This patch proposes to call `processBinOp()` on newly-created binop,
which is identical to what we do for div/rem already.
Reviewers: nikic, spatel, reames
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision:
llvm-svn: 375273
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/overflows.ll
Commit 788acc6ff8ee3b2fc16a3f68179b0b445f6f4381 by rprichard
[libunwind][Android] Fix findUnwindSections for ARM EHABI Bionic
Summary: Fix the arm_section_length count. The meaning of the
arm_section_length field changed from num-of-elements to num-of-bytes
when the dl_unwind_find_exidx special case was removed (D30306 and
D30681). The special case was restored in D39468, but that patch didn't
account for the change in arm_section_length's meaning.
That patch worked when it was applied to the NDK's fork of libunwind,
because it never removed the special case in the first place, and the
special case is probably disabled in the Android platform's copy of
libunwind, because __ANDROID_API__ is greater than 21.
Turn the dl_unwind_find_exidx special case on unconditionally for
Bionic. Bionic's dl_unwind_find_exidx is much faster than using
(e.g. Bionic stores exidx info on an internal soinfo object.)
Reviewers: thomasanderson, srhines, danalbert, ed, keith.walker.arm,
mclow.lists, compnerd
Reviewed By: srhines, danalbert
Subscribers: srhines, kristof.beyls, christof, libcxx-commits
Tags: #libc
Differential Revision:
llvm-svn: 375275
The file was modifiedlibunwind/src/AddressSpace.hpp
The file was modifiedlibunwind/src/UnwindCursor.hpp
Commit cf25242daaf876085f6f665c26fa3aa3cd502040 by peter
scudo: Update TLS_SLOT_SANITIZER value.
Android now allocates only 8 fixed TLS slots. Somehow we were getting
away with using a non-existent slot until now, but in some cases the TLS
slots were being placed at the end of a page, which led to a segfault at
Differential Revision:
llvm-svn: 375276
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h