{"shas":[["201f2463a72f88121a3a31e7386029e99d2d75da","9e01571d0adae2c18b4ca0578f54335c0bc01b66@2pi.dk","Don't treat a partial <def,undef> operand as a read.\n\nNormally, a partial register def is treated as reading the\nsuper-register unless it also defines the full register like this:\n\n  %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def>\n\nThis patch also uses the <undef> flag on partial defs to recognize\nnon-reading operands:\n\n  %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit\n\nThis fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses\nwould treat a coalesced copy as still reading the register, extending\nthe live range artificially.\n\nMy test case only works when I disable DCE so a dead copy is left for\nRegisterCoalescer, so I am not including it.\n\n<rdar://problem/9967101>\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138018 91177308-0d34-0410-b5e6-96231b3b80d8","Jakob Stoklund Olesen"]],"ref":"refs/heads/master","size":1,"head":"201f2463a72f88121a3a31e7386029e99d2d75da","push_id":39997939}