Commits

Michael Gottesman committed 3e513eac404
[func-sig-opts] SROA and delete partially dead arguments. The reason why I am interested in doing this is that: 1. Performing partial dead argument elimination is just a good thing to do since it reduces dead opaque uses of explosion values, helping other optimizations. 2. By performing SROA on function arguments, I am able to avoid having to teach the ARC optimizer about aggregates in arguments. It is important to try to keep the ARC optimizer as slim as possible. Additionally the projection tree infrastructure that was built for this optimization will also allow me to easily "trim" and explode indirect arguments as well. On my machine I am seeing the following speedups: Dictionary3||||||||||-33.53% Dictionary2||||||||||-19.20% StringBuilder||||||||-11.04% StdlibSort|||||||||||-9.82% StringInterpolation||-9.82% rdar://17005816 Swift SVN r23587