<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>