SuccessChanges

Summary

  1. MachineScheduler: Fix missing dependency with multiple subreg defs (details)
  2. [NFCI] Always initialize const members of AttributeCommonInfo (details)
Commit dd74f4839b1291810f376e0a5739ddd0abff91be by Matthew.Arsenault
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
The file was addedllvm/test/CodeGen/AMDGPU/subreg-undef-def-with-other-subreg-defs.mir
The file was modifiedllvm/lib/CodeGen/ScheduleDAGInstrs.cpp
Commit 466fb68fce10d34963c2fd651de32bd3a4ddcd1f by apl
[NFCI] Always initialize const members of AttributeCommonInfo
Some compilers require that const fields of an object must be explicitly
initialized by the constructor. I ran into this issue building with
clang 3.8 on Ubuntu 16.04.
llvm-svn: 372363
The file was modifiedclang/include/clang/Basic/AttributeCommonInfo.h