ScheduleDAGInstrs: Rework schedule graph builder.
authorMatthias Braun <matze@braunis.de>
Thu, 3 Dec 2015 02:05:27 +0000 (02:05 +0000)
committerMatthias Braun <matze@braunis.de>
Thu, 3 Dec 2015 02:05:27 +0000 (02:05 +0000)
commitc0a189c3792865257c1383f176e5401373ed2270
treeda42b2c50bbcf9857aa54da6a5083d77c2d86439
parent26ddca196954ccfa697102b46118956ad616073a
ScheduleDAGInstrs: Rework schedule graph builder.

The new algorithm remembers the uses encountered while walking backwards
until a matching def is found. Contrary to the previous version this:
- Works without LiveIntervals being available
- Allows to increase the precision to subregisters/lanemasks
  (not used for now)

The changes in the AMDGPU tests are necessary because the R600 scheduler
is not stable with respect to the order of nodes in the ready queues.

Differential Revision: http://reviews.llvm.org/D9068

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254577 91177308-0d34-0410-b5e6-96231b3b80d8
16 files changed:
include/llvm/CodeGen/ScheduleDAGInstrs.h
lib/CodeGen/ScheduleDAGInstrs.cpp
test/CodeGen/AMDGPU/image-attributes.ll
test/CodeGen/AMDGPU/literals.ll
test/CodeGen/AMDGPU/llvm.AMDGPU.read.workdim.ll
test/CodeGen/AMDGPU/llvm.AMDGPU.trunc.ll
test/CodeGen/AMDGPU/llvm.r600.read.local.size.ll
test/CodeGen/AMDGPU/or.ll
test/CodeGen/AMDGPU/set-dx10.ll
test/CodeGen/AMDGPU/sext-in-reg.ll
test/CodeGen/AMDGPU/shl.ll
test/CodeGen/AMDGPU/sra.ll
test/CodeGen/AMDGPU/srl.ll
test/CodeGen/AMDGPU/unsupported-cc.ll
test/CodeGen/AMDGPU/work-item-intrinsics.ll
test/CodeGen/AMDGPU/xor.ll