[all-commits] [llvm/llvm-project] ff040e: [FastISel] Reuse register for bitcast that does no...

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon Feb 14 00:15:36 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ff040eca93fb5700b30fc81cde9b8f9401c8da67
      https://github.com/llvm/llvm-project/commit/ff040eca93fb5700b30fc81cde9b8f9401c8da67
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-02-14 (Mon, 14 Feb 2022)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
    M llvm/test/CodeGen/AArch64/swifterror.ll
    M llvm/test/CodeGen/ARM/swifterror.ll
    M llvm/test/CodeGen/X86/atomic64.ll
    M llvm/test/CodeGen/X86/swifterror.ll

  Log Message:
  -----------
  [FastISel] Reuse register for bitcast that does not change MVT

The current FastISel code reuses the register for a bitcast that
doesn't change the IR type, but uses a reg-to-reg copy if it
changes the IR type without changing the MVT. However, we can
simply reuse the register in that case as well.

In particular, this avoids unnecessary reg-to-reg copies for pointer
bitcasts. This was found while inspecting O0 codegen differences
between typed and opaque pointers.

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




More information about the All-commits mailing list