Commits

Michael Gottesman committed 4d48d2aaae5
[mangle] Add initial code for SIL specializations manglings and refactor Generic Specialization mangling code to there from the pass itself. This is apart of creating the infrastructure for creating special manglings for all of the passes that we specialize. The main motiviations for this infrastructure is: 1. Create an easy method with examples on how to create these manglings. 2. Support multiple specializations. This is important once we allow for partial specialization and can already occur if we perform function signature optimizations on specialized functions. The overall scheme is as follows: _TTS<MANGLINGINFO>__<FUNCNAME> Thus if we specialize twice, the first specialization will just be treated as the function name for the second specialization. <MANGLINGINFO> is defined as: _<SPECIALIZATIONKINDID>_<SPECIALIZATIONUNIQUEINFO> Where specialization kind is an enum that specifies the specific sort of specialization we are performing and specialization unique info is enough information to ensure that the identity of the function is appropriately preserved. Swift SVN r23801