[all-commits] [llvm/llvm-project] 6de7b2: [ARM] Change CRC predicate to just HasCRC

Kohei Asano via All-commits all-commits at lists.llvm.org
Sun Sep 17 23:49:55 PDT 2023


  Branch: refs/heads/release/17.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 6de7b2ef8eeae86101f8af4a3359c7fe3c4d429b
      https://github.com/llvm/llvm-project/commit/6de7b2ef8eeae86101f8af4a3359c7fe3c4d429b
  Author: David Green <david.green at arm.com>
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/test/CodeGen/ARM/crc32.ll
    M llvm/test/MC/ARM/crc32-thumb.s
    M llvm/test/MC/ARM/crc32.s
    M llvm/test/MC/ARM/directive-arch_extension-crc.s

  Log Message:
  -----------
  [ARM] Change CRC predicate to just HasCRC

This removes the backend requirement for crc instructions on HasV8, relying on
just HasCRC instead. This should allow them to be selected with ArmV7 + crc,
making them more usable whilst hopefully not making them incorrectly generated
(they only come from intrinsics, and HasCRC usually requires HasV8). This is
how most other instructions are specified.

(cherry picked from commit a82c106e571c6991a95c38a936a466895122d713)


  Commit: b51021f7b39deae7450fc2f722c1e5ec655fe105
      https://github.com/llvm/llvm-project/commit/b51021f7b39deae7450fc2f722c1e5ec655fe105
  Author: Martin Storsjö <martin at martin.st>
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
    M llvm/tools/lli/lli.cpp

  Log Message:
  -----------
  [lli] Make sure the exported __chkstk functions are included when exporting them

The trick we use (since cbc2a0623a39461b56bd9eeb308ca535f03793f8)
for exporting the __chkstk function (with various per-arch names)
that is defined in a different object file, relies on the function
already being linked in (by some function referencing it).

This function does end up referenced if there's a function that
allocates more than 4 KB on the stack. In most cases, it's referenced
somewhere, but in the case of builds with LLVM_LINK_LLVM_DYLIB
enabled (so most of the code resides in a separate libLLVM-<ver>.dll)
the only code in lli.exe is the lli tool specific code and the
mingw-w64 crt startup code. In the case of GCC based MinGW i386
builds with LLVM_LINK_LLVM_DYLIB, nothing else references it though.

Manually add a reference to the function to make sure it is linked
in (from libgcc or compiler-rt builtins) so that it can be exported.

This fixes one build issue encountered in
https://github.com/msys2/MINGW-packages/pull/18002.

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

(cherry picked from commit 4bba12f7226228221d1fa4bad7732e25647ecb87)


  Commit: d0eb9b83e8d604ac66befadc5551eee07f9d0bbf
      https://github.com/llvm/llvm-project/commit/d0eb9b83e8d604ac66befadc5551eee07f9d0bbf
  Author: Kohei Asano <32860920+khei4 at users.noreply.github.com>
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll

  Log Message:
  -----------
  [SimplifyCFG] handle monotonic wrapped case for D150943 (#65882)

(cherry picked from commit fef82492209b24fd0b36a199657f3ed822e601a6)


Compare: https://github.com/llvm/llvm-project/compare/e22c30414e54...d0eb9b83e8d6


More information about the All-commits mailing list