Do not consider subreg defs as reads when computing subrange liveness
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Fri, 2 Sep 2016 19:48:55 +0000 (19:48 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Fri, 2 Sep 2016 19:48:55 +0000 (19:48 +0000)
commit3bf4aeccd607fbc86429f3b26e18c1f1cdfda77c
treea137a1faa25bebb727d1a42f2102f1e6ac504b17
parent70277411d3dd780ae794da3621204823bb9344f8
Do not consider subreg defs as reads when computing subrange liveness

Subregister definitions are considered uses for the purpose of tracking
liveness of the whole register. At the same time, when calculating live
interval subranges, subregister defs should not be treated as uses.

Differential Revision: https://reviews.llvm.org/D24190

llvm-svn: 280532
llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
llvm/lib/CodeGen/LiveRangeCalc.cpp
llvm/lib/CodeGen/LiveRangeCalc.h
llvm/lib/CodeGen/SplitKit.cpp
llvm/test/CodeGen/AMDGPU/coalescer-subrange-crash.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/scheduler-subrange-crash.ll [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/unigine-liveness-crash.ll [new file with mode: 0644]