Fix for [Bug 16146] gdb.base__call-ar-st.exp fails after pre-RA-sched=source fixes
Evan Cheng
evan.cheng at apple.com
Wed May 29 13:23:15 PDT 2013
LGTM
Evan
On May 29, 2013, at 1:14 PM, "Guo, Xiaoyi" <Xiaoyi.Guo at amd.com> wrote:
> Attached please find the fix for Bug 16146.
>
> The failure was because CALLSEQ_START and CALLSEQ_END are not ordered. But they are glued with CALL nodes. So the CALL nodes are not scheduled according to IR order.
>
> It was okay before because when DAG builder assigned ordering to nodes, it assigned the current ordering recursively to the current node and all its direct and indirect operands. So the ordering was assigned to even nodes whose DebugLoc was not tracked, such as CALLSEQ_START/CALLSEQ_END, or constants.
>
> I fixed it by passing ordering to getCALLSEQ_START and getCALLSEQ_END. Now the new generated segment looks the same as before.
>
> .loc 2 1215 0 # ../../../src/gdb/testsuite/gdb.base/cll-ar-st.c:1215:0
> leaq main.char_array(%rip), %rax
> movq %rax, %rdi
> movq %rax, -808(%rbp) # 8-byte Spill
> callq print_char_array at PLT
> .loc 2 1216 0 # ../../../src/gdb/testsuite/gdb.base/cll-ar-st.c:1216:0
> leaq main.double_array(%rip), %rax
> movq %rax, %rdi
> movq %rax, -816(%rbp) # 8-byte Spill
> callq print_double_array at PLT
> .loc 2 1217 0 # ../../../src/gdb/testsuite/gdb.base/cll-ar-st.c:1217:0
> leaq main.float_array(%rip), %rax
> movq %rax, %rdi
> movq %rax, -824(%rbp) # 8-byte Spill
> callq print_float_array at PLT
>
> Thanks,
> Xiaoyi
>
> <PR16146.diff>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130529/39af9f37/attachment.html>
More information about the llvm-commits
mailing list