[PATCH] D95664: [AVR] Fix the eliminateCallFramePseudos method so that it always expands STDWSPQRr and STDSPQRr

Rahix via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 19 04:26:18 PDT 2021


Rahix added inline comments.


================
Comment at: llvm/test/CodeGen/AVR/bug-2021-01-29-complex-frame-pointer-usage.ll:1-2
+; RUN: llc < %s -march=avr -mcpu=atmega328 -filetype=obj -o /dev/null --print-options 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
+; RUN: llc < %s -march=avr -mcpu=atmega328 -filetype=obj | llvm-objdump -S - | FileCheck %s --check-prefix=CHECK-OBJDUMP
+
----------------
arsenm wrote:
> Disassembling here is a little bit weird. Why isn't directly emitting asm sufficent?
Maybe I can shed some light on this:  The underlying bug manifested itself in the  `LLVM ERROR: Not supported instr:` error shown below.  This happens because the generated assembly actually still contains the `STDWSPQRr` or `STDSPQRr` pseudo instructions and it only starts failing once it is attempted to encode those in machine code (obviously, as they do not exist).  Thus, if the test just generated the assembly, it would pass erroneously.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D95664



More information about the llvm-commits mailing list