[all-commits] [llvm/llvm-project] 22d7be: [PPCISelLowering] Avoid emitting calls to __multi3...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Tue Apr 5 21:45:20 PDT 2022


  Branch: refs/heads/release/14.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 22d7bee01a5af14e16e3ecc610e8e50e072385bc
      https://github.com/llvm/llvm-project/commit/22d7bee01a5af14e16e3ecc610e8e50e072385bc
  Author: Aaron Puchert <aaronpuchert at alice-dsl.net>
  Date:   2022-04-05 (Tue, 05 Apr 2022)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/test/CodeGen/PowerPC/overflow-intrinsic-optimizations.ll
    M llvm/test/CodeGen/PowerPC/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/PowerPC/urem-seteq-illegal-types.ll

  Log Message:
  -----------
  [PPCISelLowering] Avoid emitting calls to __multi3, __muloti4

After D108936, @llvm.smul.with.overflow.i64 was lowered to __multi3
instead of __mulodi4, which also doesn't exist on PowerPC 32-bit, not
even with compiler-rt. Block it as well so that we get inline code.

Because libgcc doesn't have __muloti4, we block that as well.

Fixes #54460.

Reviewed By: craig.topper

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


  Commit: db07d9f098b3c8f180c1f3d2d21b509bc6e94113
      https://github.com/llvm/llvm-project/commit/db07d9f098b3c8f180c1f3d2d21b509bc6e94113
  Author: Fangrui Song <i at maskray.me>
  Date:   2022-04-05 (Tue, 05 Apr 2022)

  Changed paths:
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/test/MC/ELF/gnu-unique.s

  Log Message:
  -----------
  [MC] Fix llvm_unreachable when a STB_GNU_UNIQUE symbol needs a relocation

STB_GNU_UNIQUE should be treated in a way similar to STB_GLOBAL.
This fixes an "Invalid Binding" failure in an LLVM_ENABLE_ASSERTIONS=on build
for source files like glibc elf/tst-unique1mod1.c .

This bug has been benign so far because (a) Clang does not produce
%gnu_unique_object by itself (b) a non-assertion build likely picks the
STB_GLOBAL code path anyway.

(cherry picked from commit 6bdad85b26fbfd064772f2b382b27fbbf0b0afce)


  Commit: a4681df0202cd4967ee499c6ee640b0d09263971
      https://github.com/llvm/llvm-project/commit/a4681df0202cd4967ee499c6ee640b0d09263971
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-04-05 (Tue, 05 Apr 2022)

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Avoid spurious test breakage in clang-cl-dll configs with newer CMake

The pointer.volatile.pass.cpp test was already marked as XFAIL for
mingw-dll (for reasons explained in the comment above it).

The same issue also appears in clang-cl-dll when built with newer
CMake versions. (It didn't appear with older versions of CMake, as
CMake built the library with the clang-cl flag `-std:c++latest` when
we've requested C++ 20 - which practically built it in c++2b mode with
current clang versions. With current versions of CMake, it passes
`-std:c++20` instead.)

As it succeeds/fails dependent on factors we don't
directly control, mark it as UNSUPPORTED instead of XFAIL.

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

(cherry picked from commit b048397db8027fedf9380e7cf9213239d558fa29)


Compare: https://github.com/llvm/llvm-project/compare/23d08271a4b2...a4681df0202c


More information about the All-commits mailing list