FailedChanges

Summary

  1. Precommit tests requested for D93725 (details)
  2. [Tests] Precommit tests from to simplify rebase (details)
  3. [lldb] Fix some bugs in the Pipe class and add tests (details)
  4. [NFCI][SimplifyCFG] Prefer to add Insert edges before Delete edges into DomTreeUpdater, if reasonable (details)
  5. [LLVM] Added OpenMP to `LLVM_ALL_RUNTIMES` (details)
  6. [OpenMP] Not set OPENMP_STANDALONE_BUILD=ON when building OpenMP along with LLVM (details)
  7. [StringExtras] Add a helper class for comma-separated lists (details)
  8. CGDebugInfo: Delete unused DIFile* parameter (details)
  9. [LoopDeletion] Break backedge of outermost loops when known not taken (details)
  10. Revert "[X86][SSE] Fold unpack(hop(),hop()) -> permute(hop())" (details)
Commit 86d6f7e90a1deab93e357b8f356e29d4a24fa3ac by listmail
Precommit tests requested for D93725
The file was modifiedllvm/test/Transforms/LoopVectorize/loop-form.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
Commit fc8ab254472972816956c69d16e8b35bc91cc2ab by listmail
[Tests] Precommit tests from to simplify rebase
The file was addedllvm/test/Transforms/LoopDeletion/zero-btc.ll
Commit 13dea030b3d794d05a08dd0080c35844c9ca1b30 by pavel
[lldb] Fix some bugs in the Pipe class and add tests

- s/createUniqueFile/createUniquePath -- we don't want to create the file,
  just the file name
- s/data()/str().c_str()/ -- paths given to system apis must be
  null-terminated
The file was modifiedlldb/unittests/Host/CMakeLists.txt
The file was addedlldb/unittests/Host/PipeTest.cpp
The file was modifiedlldb/source/Host/posix/PipePosix.cpp
Commit 8e8d214c4a6c417e42996faeb9211a5c2e32111f by lebedev.ri
[NFCI][SimplifyCFG] Prefer to add Insert edges before Delete edges into DomTreeUpdater, if reasonable

This has a measurable impact on the number of DomTree recalculations.
While this doesn't handle all the cases,
it deals with the most obvious ones.
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
The file was modifiedllvm/lib/Transforms/Utils/BasicBlockUtils.cpp
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
Commit 894d2dbf502026a2b063340f8214b8ffd7cf7e21 by tianshilei1992
[LLVM] Added OpenMP to `LLVM_ALL_RUNTIMES`

This patch added `openmp` to `LLVM_ALL_RUNTIMES` so that when the CMake argument `LLVM_ENABLE_RUNTIMES=all`, OpenMP can also be built.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D94369
The file was modifiedllvm/runtimes/CMakeLists.txt
Commit 7be3285248bf54d0784a76174cf44cf7c1e780a5 by tianshilei1992
[OpenMP] Not set OPENMP_STANDALONE_BUILD=ON when building OpenMP along with LLVM

For now, `*_STANDALONE_BUILD` is set to ON even if they're built along
with LLVM because of issues mentioned in the comments. This can cause some issues.
For example, if we build OpenMP along with LLVM, we'd like to copy those OpenMP
headers to `<prefix>/lib/clang/<version>/include` such that `clang` can find
those headers without using `-I <prefix>/include` because those headers will be
copied to `<prefix>/include` if it is built standalone.

In this patch, we fixed the dependence issue in OpenMP such that it can be built
correctly even with `OPENMP_STANDALONE_BUILD=OFF`. The issue is in the call to
`add_lit_testsuite`, where `clang` and `clang-resource-headers` are passed as
`DEPENDS`. Since we're building OpenMP along with LLVM, `clang` is set by CMake
to be the C/C++ compiler, therefore these two dependences are no longer needed,
where caused the dependence issue.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D93738
The file was modifiedopenmp/cmake/OpenMPTesting.cmake
The file was modifiedllvm/runtimes/CMakeLists.txt
Commit 407b1e65a464081e28c325273b65e8eafdfad1d4 by kazu
[StringExtras] Add a helper class for comma-separated lists

This patch introduces a helper class SubsequentDelim to simplify loops
that generate a comma-separated lists.

For example, consider the following loop, taken from
llvm/lib/CodeGen/MachineBasicBlock.cpp:

    for (auto I = pred_begin(), E = pred_end(); I != E; ++I) {
      if (I != pred_begin())
        OS << ", ";
      OS << printMBBReference(**I);
    }

The new class allows us to rewrite the loop as:

    SubsequentDelim SD;
    for (auto I = pred_begin(), E = pred_end(); I != E; ++I)
      OS << SD << printMBBReference(**I);

where SD evaluates to the empty string for the first time and ", " for
subsequent iterations.

Unlike interleaveComma, defined in llvm/include/llvm/ADT/STLExtras.h,
SubsequentDelim can accommodate a wider variety of loops, including:

- those that conditionally skip certain items,
- those that need iterators to call getSuccProbability(I), and
- those that iterate over integer ranges.

As an example, this patch cleans up MachineBasicBlock::print.

Differential Revision: https://reviews.llvm.org/D94377
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/unittests/ADT/StringExtrasTest.cpp
The file was modifiedllvm/include/llvm/ADT/StringExtras.h
Commit 02bc320545deb0212a43acae24fcf2383755d383 by i
CGDebugInfo: Delete unused DIFile* parameter
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
Commit 4739dd67e7a08b715f1d23f71fb4af16007fe80a by listmail
[LoopDeletion] Break backedge of outermost loops when known not taken

This is a resubmit of dd6bb367 (which was reverted due to stage2 build failures in 7c63aac), with the additional restriction added to the transform to only consider outer most loops.

As shown in the added test case, ensuring LCSSA is up to date when deleting an inner loop is tricky as we may actually need to remove blocks from any outer loops, thus changing the exit block set.   For the moment, just avoid transforming this case.  I plan to return to this case in a follow up patch and see if we can do better.

Original commit message follows...

The basic idea is that if SCEV can prove the backedge isn't taken, we can go ahead and get rid of the backedge (and thus the loop) while leaving the rest of the control in place. This nicely handles cases with dispatch between multiple exits and internal side effects.

Differential Revision: https://reviews.llvm.org/D93906
The file was modifiedllvm/test/Transforms/IndVarSimplify/exit_value_test2.ll
The file was modifiedllvm/test/Transforms/LoopDeletion/zero-btc.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/LoopUtils.h
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedllvm/test/Transforms/LoopDeletion/update-scev.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopDeletion.cpp
Commit d43a264a5dd3c72bf9dc663551c0993921b28136 by thakis
Revert "[X86][SSE] Fold unpack(hop(),hop()) -> permute(hop())"

This reverts commit 80dee7965dffdfb866afa9d74f3a4a97453708b2.
Makes clang sometimes hang forever. See
https://bugs.chromium.org/p/chromium/issues/detail?id=1164786#c6 for a
stand-alone repro.
The file was modifiedllvm/test/CodeGen/X86/horizontal-shuffle-2.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp