[all-commits] [llvm/llvm-project] 76ceeb: [DAGCombine] Check the uses of negated floating co...

Eric via All-commits all-commits at lists.llvm.org
Fri Jun 26 13:47:07 PDT 2020


  Branch: refs/heads/release/10.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 76ceebb0d96361de2b61bf8e504d306d1f2e492f
      https://github.com/llvm/llvm-project/commit/76ceebb0d96361de2b61bf8e504d306d1f2e492f
  Author: QingShan Zhang <qshanz at cn.ibm.com>
  Date:   2020-06-26 (Fri, 26 Jun 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/PowerPC/fma-combine.ll

  Log Message:
  -----------
  [DAGCombine] Check the uses of negated floating constant and remove the hack

PowerPC hits an assertion due to somewhat the same reason as https://reviews.llvm.org/D70975.
Though there are already some hack, it still failed with some case, when the operand 0 is NOT
a const fp, it is another fma that with const fp. And that const fp is negated which result in multi-uses.

A better fix is to check the uses of the negated const fp. If there are already use of its negated
value, we will have benefit as no extra Node is added.

Differential revision: https://reviews.llvm.org/D75501

(cherry picked from commit 3906ae387f0775dfe4426e4336748269fafbd190)


  Commit: 77d76b71d7df39b573dfa1e391096a040e9b7bd3
      https://github.com/llvm/llvm-project/commit/77d76b71d7df39b573dfa1e391096a040e9b7bd3
  Author: Eric Fiselier <eric at efcs.ca>
  Date:   2020-06-26 (Fri, 26 Jun 2020)

  Changed paths:
    M libcxx/include/array

  Log Message:
  -----------
  [libc++] Fix recursive instantiation in std::array.

The use of the `&& ...` fold expression in std::array's deduction guides
recursively builds a set of binary operator expressions of depth N where
`N` is the number of elements in the initializer.

This is problematic because arrays may be large, and instantiation
depth is limited.

This patch addresses the issue by flattening the SFINAE using
the existing `__all` type trait.

(cherry picked from commit c6eb584c64872fbb779df14acd31c1f3947f6e52)


Compare: https://github.com/llvm/llvm-project/compare/b294e611271a...77d76b71d7df


More information about the All-commits mailing list