You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't think current implement is correct because I have a very simple example on X86 where only CL is clobbered than also CH is marked as clobbered :
Extended Description
==== arm.c ====
char add(char b)
{
return b + 1;
}
==== arm.ll =====
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
target triple = "armv4t--"
; Function Attrs: minsize norecurse nounwind optsize readnone
define arm_aapcscc zeroext i8 @add(i8 zeroext %b) {
entry:
%conv = zext i8 %b to i32
%add = add nuw nsw i32 %conv, 1
%conv1 = trunc i32 %add to i8
ret i8 %conv1
}
==== arm.s =====
add: @ @add
.fnstart
@ BB#0: @ %entry
add r0, r0, #1
and r0, r0, #255
bx lr
$ llc -march=arm arm.ll -enable-ipra=true -print-regusage
add Clobbered Registers: R0 R1 R0_R1
I think it should be:
$ llc -march=arm arm.ll -enable-ipra=true -print-regusage
add Clobbered Registers: R0 R0_R1
The text was updated successfully, but these errors were encountered: