FailedChanges

Summary

  1. [libc++] Fix the Homebrew tap to install Buildkite on macOS hosts (details)
  2. [libc++] Remove ABI lists for previous releases (details)
  3. [NFC][SimplifyCFG] Add statistic to `FoldBranchToCommonDest()` fold (details)
  4. [NFC][SimplifyCFG] Add test coverage for FoldBranchToCommonDest xform with live-out bonus instuctions (details)
  5. [SimplifyCFG] FoldBranchToCommonDest: lift use-restriction on bonus instructions (details)
Commit e9f7dc4f1c29eaf354d3108a0c243b3128c140bb by Louis Dionne
[libc++] Fix the Homebrew tap to install Buildkite on macOS hosts
The file was modifiedlibcxx/utils/ci/macos-ci-setup
Commit 433d0a30c6e64514f9020f34cdebe630c46dbcfb by Louis Dionne
[libc++] Remove ABI lists for previous releases

We don't actually update the ABI lists at every release -- it's too much
work, since we'd technically have to do it even for minor releases.
Furthermore, I don't think anybody uses those (I certainly don't rely
on them for anything).

Instead, it is better to rely on the ABI list changelog and the canonical
ABI list that we always keep up to date. If one wants to know what symbols
were shipped in a specific release, that can be discovered easily using
Git, which is a superior tool than keeping textual copies of old versions.
The file was removedlibcxx/lib/abi/4.0/x86_64-apple-darwin16.abilist
The file was removedlibcxx/lib/abi/9.0/x86_64-apple-darwin.v2.abilist
The file was removedlibcxx/lib/abi/8.0/x86_64-apple-darwin.v2.abilist
The file was removedlibcxx/lib/abi/5.0/x86_64-unknown-linux-gnu.abilist
The file was modifiedlibcxx/NOTES.TXT
The file was removedlibcxx/lib/abi/3.9/x86_64-apple-darwin16.abilist
The file was removedlibcxx/lib/abi/4.0/x86_64-unknown-linux-gnu.abilist
The file was modifiedlibcxx/lib/abi/CHANGELOG.TXT
The file was removedlibcxx/lib/abi/3.9/x86_64-linux-gnu.abilist
The file was removedlibcxx/lib/abi/5.0/x86_64-apple-darwin16.abilist
The file was removedlibcxx/lib/abi/9.0/x86_64-unknown-linux-gnu.v1.abilist
The file was removedlibcxx/lib/abi/8.0/x86_64-unknown-linux-gnu.v1.abilist
The file was removedlibcxx/lib/abi/9.0/x86_64-apple-darwin.v1.abilist
The file was removedlibcxx/lib/abi/6.0/x86_64-apple-darwin16.abilist
The file was removedlibcxx/lib/abi/6.0/x86_64-unknown-linux-gnu.abilist
The file was removedlibcxx/lib/abi/8.0/x86_64-apple-darwin.v1.abilist
Commit 65db7d38e0502db7b5753e974e630fd1663cb65b by lebedev.ri
[NFC][SimplifyCFG] Add statistic to `FoldBranchToCommonDest()` fold
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit 394b4fdb41542f695ed478c33275c54afb081efe by lebedev.ri
[NFC][SimplifyCFG] Add test coverage for FoldBranchToCommonDest xform with live-out bonus instuctions

The uses of the bonus instructions should not be preventing the transformation.
The file was addedllvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
Commit 2245fb8aaa1c1f85f53f7b19a1ee3ac69b1a1dfe by lebedev.ri
[SimplifyCFG] FoldBranchToCommonDest: lift use-restriction on bonus instructions

1. It doesn't make sense to enforce that the bonus instruction
   is only used once in it's basic block. What matters is
   whether those user instructions fit within our budget, sure,
   but that is another question.
2. It doesn't make sense to enforce that said bonus instructions
   are only used within their basic block. Perhaps the branch
   condition isn't using the value computed by said bonus instruction,
   and said bonus instruction is simply being calculated
   to be used in successors?

So iff we can clone bonus instructions, to lift these restrictions,
we just need to carefully update their external uses
to use the new cloned instructions.

Notably, this transform (even without this change) appears to be
poison-unsafe as per alive2, but is otherwise (including the patch) legal.

We don't introduce any new PHI nodes, but only "move" the instructions
around, i'm not really seeing much potential for extra cost modelling
for the transform, especially since now we allow at most one such
bonus instruction by default.

This causes the fold to fire +11.4% more (13216 -> 14725)
as of vanilla llvm test-suite + RawSpeed.

The motivational pattern is IEEE-754-2008 Binary16->Binary32
extension code:
https://github.com/darktable-org/rawspeed/blob/ca57d77fb2ba81f21fc712cfac26e54f46406473/src/librawspeed/common/FloatingPoint.h#L115-L120
^ that should be a switch, but it is not now: https://godbolt.org/z/bvja5v
That being said, even thought this seemed like this would fix it: https://godbolt.org/z/xGq3TM
apparently that fold is happening somewhere else afterall,
so something else also has a similar 'artificial' restriction.
The file was modifiedllvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/peel-loop-inner.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp