[all-commits] [llvm/llvm-project] 22687a: [CodeGen] Correctly handle non-standard cases in R...

Stephen Tozer via All-commits all-commits at lists.llvm.org
Tue Jan 28 06:00:04 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 22687aa97bdae2f0ea0be9baf208247c18d69c06
      https://github.com/llvm/llvm-project/commit/22687aa97bdae2f0ea0be9baf208247c18d69c06
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2025-01-28 (Tue, 28 Jan 2025)

  Changed paths:
    M llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
    A llvm/test/CodeGen/X86/fake-use-remove-loads.mir

  Log Message:
  -----------
  [CodeGen] Correctly handle non-standard cases in RemoveLoadsIntoFakeUses (#111551)

In the RemoveLoadsIntoFakeUses pass, we try to remove loads that are
only used by fake uses, as well as the fake use in question. There are
two existing errors with the pass however: it incorrectly examines every
operand of each FAKE_USE, when only the first is relevant (extra
operands will just be "killed" regs assigned by a previous pass), and it
ignores cases where the FAKE_USE register is not an exact match for the
loaded register, which is incorrect as regalloc may choose to load a
wider value than the FAKE_USE required pre-regalloc. This patch fixes
both of these cases.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list