{"push_id":1263329564,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"aa485e82dac2843d6c518452e6d58177ea72a919","before":"fa362065312441a87430934d929c236b12246cd8","commits":[{"sha":"f86f0253d1c68436680048fe37386cc7b18501af","author":{"name":"Erik Eckstein","email":"3bf891eb1f764506fbd0610106b0d756a04c88b8@apple.com"},"message":"FunctionSignatureOpts: also specialize externally available functions.\n\nOtherwise we are missing some important opportunities.\nNo code size degradation observed.","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/f86f0253d1c68436680048fe37386cc7b18501af"},{"sha":"959e19d7bca34ff0cd6de47b9a462ab8a352c463","author":{"name":"Erik Eckstein","email":"3bf891eb1f764506fbd0610106b0d756a04c88b8@apple.com"},"message":"Add an optimization to eliminate a partial_apply if all applied arguments are dead in the applied function.\n\nThis consists of 3 parts:\n1) Extend CallerAnalysis to also provide information if a function is partially applied\n2) A new DeadArgSignatureOpt pass, similar to FunctionSignatureOpts, which just specializes for dead arguments of partially applied functions.\n3) Let CapturePropagation eliminate such partial_apply instructions and replace them with a thin_to_thick conversion of the specialized functions.\n\nThis optimzation improves benchmarks where static struct or class functions are passed as a closure (e.g. -20% for SortStrings).\nSuch functions have a additional metatype parameter. We used to create a partial_apply in this case, which allocates a context, etc.\nBut this is not necessary as the metatype parameter is not used in most cases.\n\nrdar://problem/27513085","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/959e19d7bca34ff0cd6de47b9a462ab8a352c463"},{"sha":"aa485e82dac2843d6c518452e6d58177ea72a919","author":{"name":"eeckstein","email":"3bf891eb1f764506fbd0610106b0d756a04c88b8@apple.com"},"message":"Merge pull request #4457 from eeckstein/partial-apply-opt\n\nAdd an optimization to eliminate a partial_apply if all applied arguments are dead in the applied function.","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/aa485e82dac2843d6c518452e6d58177ea72a919"}]}
{"actor":{"display_login":"gottesmm"}}