Commits

Chris Lattner committed 5708f5d28c7
Take a big step towards rewriting how definite init promotes loads into SSA form, moving to resolving rdar://15170149. Instead of promoting loads in the middle of the process of proving that everything passes DI requirements, do this after a full element is ok. Doing this requires changing just about everything about how we modeled elements and subelements being promoted, but this is good for a lot of reasons: 1) we now don't eagerly scalarize all loads to struct members, now we just scalarize top-level tuples. This is good for preserving higher level operations. 2) Even without scalarization, we can still model things at an extremely fine grain, but we can also keep aggregate operations together. This means that load promotion doesn't insert a kajillion struct_extract + struct sequences to decompose then recompose things. This is just patch #1 of a series, but this is the bulk of the hard work. Swift SVN r9338