1. [LoopPred] Selectively disable to preserve test cases (details)
  2. [LoopPred] Enable new transformation by default (details)
  3. unwind: reflow some of the build rules (NFC) (details)
  4. unwind: restore the LINKER_LANGUAGE (details)
Commit 20cbb6cdf8b33dd3732b9ef8702e7946b6d8c739 by listmail
[LoopPred] Selectively disable to preserve test cases
I'm about to enable the new loop predication transform by default.  It
has the effect of completely destroying many read only loops - which
happen to be a super common idiom in our test cases.  So as to preserve
test coverage of other transforms, disable the new transform where it
would cause sharp test coverage regressions.
(This is semantically part of the enabling commit.  It's committed
separate to ease revert if the actual flag flip gets reverted.)
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-reuse.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/replace-loop-exit-folds.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr24356.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr39673.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/no-iv-rewrite.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr38674.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-pr20680.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/sink-from-preheader.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr-dead-ivs.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-trunc.ll
Commit 8748be7750920b7bd669a47be72a81ee7f1d305c by listmail
[LoopPred] Enable new transformation by default
The basic idea of the transform is to convert variant loop exit
conditions into invariant exit conditions by changing the iteration on
which the exit is taken when we know that the trip count is
unobservable.  See the original patch which introduced the code for a
more complete explanation.
The individual parts of this have been reviewed, the result has been
fuzzed, and then further analyzed by hand, but despite all of that, I
will not be suprised to see breakage here.  If you see problems, please
don't hesitate to revert - though please do provide a test case.  The
most likely class of issues are latent SCEV bugs and without a reduced
test case, I'll be essentially stuck on reducing them.
(Note: A bunch of tests were opted out of the new transform to preserve
coverage.  That landed in a previous commit to simplify revert cycles if
they turn out to be needed.)
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/exit_value_tests.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/scevunroll.ll
Commit aa582e3648cc4036aec3b9302ab93bfe9929d19c by Saleem Abdulrasool
unwind: reflow some of the build rules (NFC)
Reflow the CMake properties to take less vertical space.  This just
makes it easier to read.  NFC.
The file was modifiedlibunwind/src/CMakeLists.txt
Commit e74e61ff297e81c0a9bda54037033fc40fc76e1d by Saleem Abdulrasool
unwind: restore the LINKER_LANGUAGE
Have CMake treat the unwind libraries as C libraries rather than C++.
There is no C++ runtime dependency at runtime.  This ensures that we do
not accidentally end up with a link against the C++ runtime.
We need to explicitly reset the implicitly linked libraries for C++ to
ensure that we do not have CMake force the link against the C++ runtime.
This adjustment should enable the NetBSD bots to be happy with this
The file was modifiedlibunwind/src/CMakeLists.txt