{"push_id":1327978650,"size":8,"distinct_size":8,"ref":"refs/heads/master","head":"953716d4569465bf0370c781f2a0f26e7614b9a4","before":"6500ff9ff75024adc196e2718ea0f9b043c316a4","commits":[{"sha":"0bf4ce8a8761a7a67653917d283b2e7feac5b2ba","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Clang Importer] Refactor lookup table code\n\nMove SwiftLookupTableReader/Writer into .cpp file, as they are\nirrelevant to the rest of the importer, and this allows us to make\nthem more ImportName aware in the future. Pull more code out of\nClangImporter.cpp.\n\nNFC.","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/0bf4ce8a8761a7a67653917d283b2e7feac5b2ba"},{"sha":"bf77f75aa7d25fe58776cf450f6cec07461bd2d2","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Clang Importer] Make EnumInfoCache be per-Clang-instance based.\n\nDelay initialization of the EnumInfoCache until a Clang instance is\nready, simplifying its interface and allowing us to finally make this\nper-Clang-instance. This will allow us to further de-couple ImportName\nfrom the importer imply, as well as allow us to use a more efficient\nand simpler caching mechanism. It is now owned by the NameImporter.\n\nNFC.","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/bf77f75aa7d25fe58776cf450f6cec07461bd2d2"},{"sha":"99c12b002b46ad9e0b833d4e4e9128f6035ba42f","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Clang Importer] Eliminate clangSemaOverride\n\nBanish the abomination that is clangSemaOverride, a previously\nnecessary evil. When building the module caches, different Clang\ninstances will be spawned than the one used by the normal\nimporter. Since we want to reuse code and get the same name both ways,\nthis meant threading through alternative clang Semas and preprocessors\nthroughtout, some of the time. This broke the abstraction and\nencapsulation of the Impl, complicated the programming model, and\notherwise made effective caching hard.\n\nNow that we’ve done enough ImportName refactoring, we can create a\nNameImporter per Clang instance, and encapsulate naming therein. We\ncan now remove the sema overrides, as we have already done to the\npreprocessor overrides.\n\nThis shifts the 2-phase initialization problem to the Impl and the\nClang module writers.\n\nNFC","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/99c12b002b46ad9e0b833d4e4e9128f6035ba42f"},{"sha":"a2267fdf86bf19f5e90b2991a76d06f5907c6abf","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Clang Importer] Refactor and simplify\n\nNow that we have per-Clang-instance NameImporters, we can drop the\n2-phase initialization that was internally present in\nNameImporter. This lets NameImporter host the EnumInfoCache directly,\nand streamlines the APIs.\n\nNFC","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/a2267fdf86bf19f5e90b2991a76d06f5907c6abf"},{"sha":"1d5ccc0d1b1e486bb48a5f14a6d794bdb476d9e2","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[ClangImporter] EnumInfos are now cached by Clang decl\n\nNow that we have a EnumInfoCache per NameImporter which is per Clang\ninstance, we can just cache our EnumInfo based off of Clang decl,\nrather than using a faux-USR technique. This greatly speeds up and\nsimplifies enum imports.\n\nEnumInfos are requested about 200k times when building the module\ncache for Foundation, and thousands of times for simple tests during\nnormal import, so efficiency here is important. While building module\ncaches, the EnumInfoCache is hit 99% of the time, and it is hit 98% of\nthe time during normal import with pre-built module caches.\n\nNFC.","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/1d5ccc0d1b1e486bb48a5f14a6d794bdb476d9e2"},{"sha":"85ab0318c74e160e8935a14df96560ed531498df","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Import Name] Cache NameImporter calls\n\nDuring normal import, the name for a foreign entity may be requested\nmany times. As we have more and more complex logic to compute these\nnew names, the overhead of potential re-computations adds up. This\ncache is hit about 1/3rd of the time when running a simple\nCoreGraphics test case.\n\nNFC","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/85ab0318c74e160e8935a14df96560ed531498df"},{"sha":"f436dd2d8a1364e8af06eb6ced03570387f1c480","author":{"name":"Michael Ilseman","email":"3f7910911894c419e7beffe925bdc07f88f817be@apple.com"},"message":"[Clang Importer] Delete and simplify code\n\nDrop the ImportNameSwiftContext, which was merely used to pass around\nsome global state. Instead, pass the relevant parts\ndirectly. Additionally, remove the 2-phase initialization of a\nNameImporter from the module writers, as they are only invoked once\nper Clang instance anyways, we can hold a local instance. Also\nstreamlines some APIs.\n\nNFC","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/f436dd2d8a1364e8af06eb6ced03570387f1c480"},{"sha":"953716d4569465bf0370c781f2a0f26e7614b9a4","author":{"name":"Michael Ilseman","email":"e246818fcd69c652ec4bfe87a5973df9ced60b9f@gmail.com"},"message":"Merge pull request #5089 from milseman/import_name\n\n[Clang Importer] More import name refactoring","distinct":true,"url":"https://api.github.com/repos/gottesmm/swift/commits/953716d4569465bf0370c781f2a0f26e7614b9a4"}]}
{"actor":{"display_login":"gottesmm"}}