[all-commits] [llvm/llvm-project] 996602: [AArch64][GlobalISel] When generating SUBS for com...

AE via All-commits all-commits at lists.llvm.org
Sat May 23 23:29:22 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 99660217e930c131407766f68024f76acc375597
      https://github.com/llvm/llvm-project/commit/99660217e930c131407766f68024f76acc375597
  Author: Amara Emerson <aemerson at apple.com>
  Date:   2020-05-23 (Sat, 23 May 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/opt-fold-compare.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-arith-immed-compare.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/tbnz-slt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/tbz-sgt.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] When generating SUBS for compares, don't write to wzr/xzr.

Although writing to wzr/xzr is correct since we don't care about the result
of the sub, only the flags, doing so causes tail merge blocks to fail.

Writing to an unused virtual register instead allows the optimization to fire,
improving performance significantly on 256.bzip2.

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




More information about the All-commits mailing list