Commits

Mark Lacey committed 16041fe87b6
Re-enable function argument explosion in limited cases. Re-enable function argument explosion during function signature optimization in the case where there are between one and three live leaf elements of the projection tree for the argument. Three is an arbitrary limit, which we can consider tuning later, or replacing with a better heuristic. There are many limitations in what we can do at the SIL level to make a good choice for this transformation, and this is just an attempt to keep the transformation firing in some limited use cases where it is relatively likely to be worthwhile rather than disabling it entirely. I attempted to re-enable most of the test case that was disabled in r29047. This appears to eliminate or at least greatly reduce the regression measured in the CaptureProp benchmark from the change in r29047. Swift SVN r29062