[all-commits] [llvm/llvm-project] 665065: [FastISel] Remove kill tracking

Nikita Popov via All-commits all-commits at lists.llvm.org
Sat Apr 3 06:50:31 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 665065821e6ae11deb9796a27b97a399e4bb3b0d
      https://github.com/llvm/llvm-project/commit/665065821e6ae11deb9796a27b97a399e4bb3b0d
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/CodeGen/FastISel.h
    M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
    M llvm/lib/Target/X86/X86FastISel.cpp
    M llvm/test/CodeGen/AArch64/arm64-fast-isel-rem.ll
    M llvm/utils/TableGen/FastISelEmitter.cpp

  Log Message:
  -----------
  [FastISel] Remove kill tracking

This is a followup to D98145: As far as I know, tracking of kill
flags in FastISel is just a compile-time optimization. However,
I'm not actually seeing any compile-time regression when removing
the tracking. This probably used to be more important in the past,
before FastRA was switched to allocate instructions in reverse
order, which means that it discovers kills as a matter of course.

As such, the kill tracking doesn't really seem to serve a purpose
anymore, and just adds additional complexity and potential for
errors. This patch removes it entirely. The primary changes are
dropping the hasTrivialKill() method and removing the kill
arguments from the emitFast methods. The rest is mechanical fixup.

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




More information about the All-commits mailing list