|
|
|
|
|
by astrange
1171 days ago
|
|
> So within a function or cross function with LTO (although it looks like swift doesn’t yet have LTO [1] so I’m not sure about cross-module optimizations). I'm not sure Swift supports "static library modules" so in practice any linked object consists of a single module. > There actually is some elision that happens at runtime if you install an autoreleasepool if I recall correctly. There is a trick in the ObjC ABI that elides autorelease-returns, but it's deterministic after compilation time so I wouldn't call it a runtime optimization. |
|
> but it's deterministic after compilation time so I wouldn't call it a runtime optimization.
What do you mean? My understanding is that autoreleasepool is 100% at runtime. The compiler is not involved afaik except to know to register autorelease with the currently installed pool.