SuccessChanges

Summary

  1. [CodeGen] llvm::erase_if (NFC) (details)
  2. [TargetMachine] Drop implied dso_local for an edge case (extern_weak + non-pic + hidden) (details)
  3. Add recursive decomposition reasoning to isKnownNonEqual (details)
  4. [ConstantHoisting] Remove unused declaration optimizeConstants (NFC) (details)
  5. [NFC][CodeGen] Add sanitize-dtor-zero-size-field test (details)
  6. [debugserver] Call posix_spawnattr_setarchpref_np throught the fn ptr. (details)
Commit a553ac979146df59f0688882018dbb66f345c8f8 by kazu
[CodeGen] llvm::erase_if (NFC)
The file was modifiedllvm/lib/CodeGen/MachineBlockPlacement.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit 109e70d357284f612fbe69d213b002366dd67927 by i
[TargetMachine] Drop implied dso_local for an edge case (extern_weak + non-pic + hidden)

This does not deserve special handling. The code should be added to Clang
instead if deemed useful. With this simplification, we can additionally delete
the PIC extern_weak special case.
The file was modifiedllvm/lib/Target/TargetMachine.cpp
The file was modifiedllvm/test/CodeGen/ARM/hidden-vis-3.ll
The file was modifiedllvm/test/CodeGen/X86/hidden-vis-3.ll
Commit 8f076291be41467560ebf73738561225d2b67206 by listmail
Add recursive decomposition reasoning to isKnownNonEqual

The basic idea is that by looking through operand instructions which don't change the equality result that we can push the existing known bits comparison down past instructions which would obscure them.

We have analogous handling in InstSimplify for most - though weirdly not all - of these cases starting from an icmp root. It's a bit unfortunate to duplicate logic, but since my actual goal is to extend BasicAA, the icmp logic doesn't help. (And just makes it hard to test here.)  The BasicAA change will be posted separately for review.

Differential Revision: https://reviews.llvm.org/D92698
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Analysis/ValueTracking/known-non-equal.ll
Commit 5121400e71bbe821488240335cbffb41fe852514 by kazu
[ConstantHoisting] Remove unused declaration optimizeConstants (NFC)

The function was renamed to runImpl on Jul 2, 2016 in commit
071d8306b0d9d1345c1da84ae3e1c1b231ffd29d, but the old declaration has
remained since.
The file was modifiedllvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
Commit 452eddf30bfcd0f8ade9796ef24b3e8773ef1618 by Vitaly Buka
[NFC][CodeGen] Add sanitize-dtor-zero-size-field test

The test demonstrates invalid behaviour which will be fixed soon.
The file was addedclang/test/CodeGenCXX/sanitize-dtor-zero-size-field.cpp
Commit ee607ed5c36efd8e0536ddbeab1f2025b0e5f045 by Jonas Devlieghere
[debugserver] Call posix_spawnattr_setarchpref_np throught the fn ptr.

Fourth time is the charm? Of course all of these issues don't show up
when the function is available...
The file was modifiedlldb/tools/debugserver/source/MacOSX/MachProcess.mm