When the scheduler unfold a load folding instruction it move some of the predecessors...
authorEvan Cheng <evan.cheng@apple.com>
Fri, 5 Feb 2010 01:27:11 +0000 (01:27 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 5 Feb 2010 01:27:11 +0000 (01:27 +0000)
commit5ba8bf6d28ad350114a4b02f01d70ebe08612cfe
treebf16c58a92568d5c5f173fdd0b6a2ba51cff7e6a
parent744f579b63987854ac1b3f2f9c8d2659c5b5ee40
When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit.
rdar://7604000

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95339 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
test/CodeGen/X86/2010-02-04-SchedulerBug.ll [new file with mode: 0644]