<div dir="ltr"><span id="" style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Hello everyone, </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"><span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">I enable post RA scheduler and anti-dependence breaker for the ARM back-end. However, the breaker generates the wrong code, which doesn't put return value in the first register w0. The breaker rename the w0 by other register in the function tail. Do I miss out some things to let it function correct? I would appreciate any ideas. </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"><span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Anthony Yu </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"><span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">=====Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">The following is the sample llvm-IR and part of assembly code compiled by llc. I enable aggressive anti-dependence breaker. </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"><span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">=== Â sample LLVM-IRÂ </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">@lhs = global fp128 zeroinitializer, align 16Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">@rhs = global fp128 zeroinitializer, align 16Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">define i32 @test() {Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Â %lhs = load fp128* @lhs, align 16Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span id="" style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Â %rhs = load fp128* @rhs, align 16Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"> %val = fcmp ugt fp128 %lhs, %rhs </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Â %tt = select i1 %val, i32 5, i32 6Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"> ret i32 %tt </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">}Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">===Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)"><span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">=== part of assembly code compiled by llc ARM back-end </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">... </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  bl  __unordtf2 </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  cmp  w0, #0         // =0 </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  movz   w20, #0x5 </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  cset   w8, ne </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  orr  w8, w8, w19 </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  cmp  w8, #0         // =0 </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  cinc   w30, w20, eq   //  write to w0 when compiling without the breaker </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Â Â sub sp, x29, #16 Â Â Â Â Â Â // =16Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">Â Â ldp x29, x30, [sp, #16] Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â ldp x20, x19, [sp], #32Â </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">  ret </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">... </span><br style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">
<span style="color:rgb(69,77,75);font-family:Verdana,Geneva,Helvetica,Arial,sans-serif;font-size:13px;background-color:rgb(250,249,245)">===</span><br></div>