aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/TapiFile.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-09-20 00:09:15 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-09-20 00:09:15 +0000
commitdd74f4839b1291810f376e0a5739ddd0abff91be (patch)
treeebd066b9f5466d1f6aef88db0cc9c1ec463231e1 /llvm/lib/Object/TapiFile.cpp
parent9dd57df26abfd2b7252fd4ce02d48f225930214e (diff)
downloadllvm-dd74f4839b1291810f376e0a5739ddd0abff91be.zip
llvm-dd74f4839b1291810f376e0a5739ddd0abff91be.tar.gz
llvm-dd74f4839b1291810f376e0a5739ddd0abff91be.tar.bz2
MachineScheduler: Fix missing dependency with multiple subreg defs
If an instruction had multiple subregister defs, and one of them was undef, this would improperly conclude all other lanes are killed. There could still be other defs of those read-undef lanes in other operands. This would improperly remove register uses from CurrentVRegUses, so the visitation of later operands would not find the necessary register dependency. This would also mean this would fail or not depending on how different subregister def operands were ordered. On an undef subregister def, scan the instruction for other subregister defs and avoid killing those. This possibly should be deferring removing anything from CurrentVRegUses until the entire instruction has been processed instead. llvm-svn: 372362
Diffstat (limited to 'llvm/lib/Object/TapiFile.cpp')
0 files changed, 0 insertions, 0 deletions