[PATCH] D117831: [AVR] Remove regalloc workaround for LDDWRdPtrQ

Tim Walls via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 7 04:27:50 PST 2022


timwalls added a comment.
Herald added a project: All.

Hi Folks,

I hate to say this, but I fear rolling this back may have been premature :-/.  I am not even in the same universe as a MRE at the moment, just trying to work out why "stuff that used to work stopped working" recently, and I am getting errors like this:

  *** Bad machine code: Using an undefined physical register ***
  - function:    _ZN93_$LT$avr_oxide..devices..button..Button$LT$S$GT$$u20$as$u20$avr_oxide..event..EventSource$GT$13process_event17hb980a9f4dd8ffea1E
  - basic block: %bb.2  (0x106888698)
  - instruction: early-clobber $r31r30 = LDDWRdPtrQ killed $r31r30, 2, debug-location !10410 :: (load (s16) from %ir.26, align 1, !alias.scope !10396); /Users/timwa/Development/rust-avr-nightly-builder/build/rust/build/aarch64-apple-darwin/stage2/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1861:38 @[ /Users/timwa/Development/avr-oxide/src/devices/button.rs:214:9 ]
  - operand 1:   killed $r31r30
  LLVM ERROR: Found 1 machine code errors.

(And of course the faithful `ran out of registers...` error.)

Re-applying this workaround patch makes the error go away :/.  I will endeavour to reduce to a smaller example of course, right now it's buried in the middle of a codebase, but just to flag it up early - :-(.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D117831



More information about the llvm-commits mailing list