[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