A follow-up to D20102:
A def operand of a virtual register can actually read a register as well. Specifically, this happens in definitions of subregisters of a virtual register (unless the "undef" flag is present). This form of a use of a register should be accounted for in the construction of the dependence graph. In ScheduleDAGInstrs::buildSchedGraph, make sure that the function addVRegUseDeps is called for such defs.