-
Notifications
You must be signed in to change notification settings - Fork 21
Assertion failure: Impossible reg-to-reg copy at AVRInstrInfo.cpp:62 #172
Comments
Maybe of interest, but this only is trigged if I compile the Rust code without optimizations. With optimizations, the code is reordered in such a way that it doesn't trigger this issue. |
Reduced testcase: declare { i16, i1 } @llvm.umul.with.overflow.i16(i16, i16)
define void @foo() {
entry-block:
%0 = call { i16, i1 } @llvm.umul.with.overflow.i16(i16 undef, i16 undef)
%1 = extractvalue { i16, i1 } %0, 1
%2 = icmp eq i1 %1, true
br i1 %2, label %cond, label %next
next: ; preds = %entry-block
ret void
cond: ; preds = %entry-block
unreachable
} Added to |
While debugging, I see that |
But I'm finding it difficult to even see where |
It will be placed in the build directory, with the name |
Ah, it ends in So |
R25R24 is a 16bit register with R25 as the high byte and R24 as the low I'm not sure how we generated code that tried to copy from one register to On Wed, Jan 20, 2016 at 1:47 PM, Jake Goulding notifications@github.com
|
Fixed in #190 |
Closing as #190 has been merged. |
While attempting to compile parts of Rust's libcore:
When running
llc -march=avr -mcpu=atmega328p -filetype=obj hello.ll
onThe text was updated successfully, but these errors were encountered: