[LLVMdev] Problem with PostRASchedulerList.cpp - advice wanted
Gurd, Preston
preston.gurd at intel.com
Wed Oct 17 15:33:43 PDT 2012
When you compile the attached file using
llc -march=x86 -mcpu=atom sched-bug.ll -o -
The Post-RA scheduler changes the sequence
movl %ecx, (%esp)
bsfl (%esp),%eax # this came from inline assembly code
to read
bsfl (%esp),%eax # this came from inline assembly code
movl %ecx, (%esp)
This is an incorrect schedule, because it seems the scheduler is not aware that the memory load by the bsfl depends on the memory store by the movl.
If you are familiar with the Post-RA scheduler works, then I would appreciate any suggestions you might have as to how I could fix this problem, such as by treating inline assembly code as a barrier or by including memory references in scheduling decisions.
Thanks,
Preston G
--
Preston Gurd <preston.gurd at intel.com>
Intel Waterloo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121017/0ef31365/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sched-bug.ll
Type: application/octet-stream
Size: 234 bytes
Desc: sched-bug.ll
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121017/0ef31365/attachment.obj>
More information about the llvm-dev
mailing list