[all-commits] [llvm/llvm-project] e1b3af: [SLP] Simplify indices processing for insertelements

Jordan Rupprecht via All-commits all-commits at lists.llvm.org
Mon Feb 21 11:53:28 PST 2022


  Branch: refs/heads/release/14.x
  Home:   https://github.com/llvm/llvm-project
  Commit: e1b3afbbdef10a8ee085dddfb24afddef2cf70b2
      https://github.com/llvm/llvm-project/commit/e1b3afbbdef10a8ee085dddfb24afddef2cf70b2
  Author: Anton Afanasyev <anton.a.afanasyev at gmail.com>
  Date:   2022-02-21 (Mon, 21 Feb 2022)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/insert-crash-index.ll

  Log Message:
  -----------
  [SLP] Simplify indices processing for insertelements

Get rid of non-constant and undef indices of insertelements
at `buildTree()` stage. Fix bugs.

Differential Revision: https://reviews.llvm.org/D119623


  Commit: 7d8e83dab37af0516bd9bbaafe818c29fbab7062
      https://github.com/llvm/llvm-project/commit/7d8e83dab37af0516bd9bbaafe818c29fbab7062
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2022-02-21 (Mon, 21 Feb 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/noreturn.ll

  Log Message:
  -----------
  [funcattrs] check reachability to improve noreturn

There was a fixme in the code pertaining to attributing functions as
noreturn.  By using reachability, if none of the blocks that are
reachable from the entry return, then the function is noreturn.

Previously, the code only checked if any blocks returned. If they're
unreachable, then they don't matter.

This improves codegen for the Linux kernel.

Fixes: https://github.com/ClangBuiltLinux/linux/issues/1563

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D119571

(cherry picked from commit 9dcb0061657e9b7f321fa6c295960c8f829ed6f1)


  Commit: c06cc1c3a7f8e20f6243433d3d15986d8758be30
      https://github.com/llvm/llvm-project/commit/c06cc1c3a7f8e20f6243433d3d15986d8758be30
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2022-02-21 (Mon, 21 Feb 2022)

  Changed paths:
    M libcxx/include/__algorithm/comp_ref_type.h
    M libcxx/test/libcxx/algorithms/debug_less.pass.cpp

  Log Message:
  -----------
  [libc++] Fix std::__debug_less in c++17.

b07b5bd72716625e0976a84d23652d94d8d0165a adds a use of `__comp_ref_type.h` to `std::min`. When libc++ is built with `-D_LIBCPP_DEBUG=0`, this enables `std::__debug_less`, which is only marked constexpr after c++17.

`std::min` itself is marked as being `constexpr` as of c++14, so by extension, `std::__debug_less` should also be marked `constexpr` for the same versions so that `std::min` can use it. This change lowers the guard from `> 17` to `> 11`.

Reproducer in godbolt: https://godbolt.org/z/ans3TGsj8

```

constexpr int x() { return std::min<int>({1, 2, 3, 4}); }

static_assert(x() == 1);
```

Reviewed By: #libc, philnik, Quuxplusone, ldionne

Differential Revision: https://reviews.llvm.org/D118940

(cherry picked from commit 99e5c5256ff2eeebd977f2c82567f52b1e534a1f)


Compare: https://github.com/llvm/llvm-project/compare/1e340705f142...c06cc1c3a7f8


More information about the All-commits mailing list