[PATCH] D118663: [AArch64] Adds SUBS and ADDS instructions to the MIPeepholeOpt.

Nathan Chancellor via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 13 09:41:37 PST 2022


nathanchance added subscribers: nickdesaulniers, nathanchance.
nathanchance added a comment.

I have reverted this in 22eb1dae3fb20ca8ada865de1d95baab0e08a060 <https://reviews.llvm.org/rG22eb1dae3fb20ca8ada865de1d95baab0e08a060>, as it causes assertion failures when building the Linux kernel, which has caused our CI to go red:

https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/1836780929
https://builds.tuxbuild.com/253UOEmSLgpZWbJd3IJsK96YDq5/build.log

A reduced reproducer from `cvise`:

  $ cat neighbour.i
  neigh_periodic_work_tbl_1() {
    if ((long)neigh_periodic_work_tbl_1 + 300 * 250 < 0)
      for (;;)
        ;
  }
  
  $ clang -O2 --target=aarch64-linux-gnu -c -o /dev/null neighbour.i
  ...
  clang: /home/nathan/cbl/src/llvm-project/llvm/include/llvm/CodeGen/Register.h:78: static unsigned int llvm::Register::virtReg2Index(llvm::Register): Assertion `isVirtualRegister(Reg) && "Not a virtual register"' failed.
  PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
  Stack dump:
  0.      Program arguments: clang -O2 --target=aarch64-linux-gnu -c -o /dev/null neighbour.i
  1.      <eof> parser at end of file
  2.      Code generation
  3.      Running pass 'Function Pass Manager' on module 'neighbour.i'.
  4.      Running pass 'AArch64 MI Peephole Optimization pass' on function '@neigh_periodic_work_tbl_1'
  ...

If there is any other information that I can provide or patches I can test, please let me know.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118663/new/

https://reviews.llvm.org/D118663



More information about the llvm-commits mailing list