Commits

Michael Gottesman committed 962df13b6c0
[lower-aggregate-instrs] Teach TypeLowering how to produce "lowered" copy values without bugs this time = ). Originally there was a emitLoweredCopyValue method in TypeLowering, but it was removed by Chris in r11353 since SILGen was no longer using it and it had bugs. This method is useful for SILLowerAggregateInstrs, so I resurrected it, fixing the bugs therein. The bug was that emitLoweredCopyValue was not reforming aggregates correctly since it was only considering non-trivial values. The new implementation passes in all child values, but only recursively lowers the non-trivial children. This does create an extra tuple_extract, struct_extract for trivial arguments, but those are easily cleaned up by later dce. Swift SVN r11753