mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Add experimental feature @inline(always)
The intent for `@inline(always)` is to act as an optimization control. The user can rely on inlining to happen or the compiler will emit an error message. Because function values can be dynamic (closures, protocol/class lookup) this guarantee can only be upheld for direct function references. In cases where the optimizer can resolve dynamic function values the attribute shall be respected. rdar://148608854
This commit is contained in:
@@ -357,7 +357,8 @@ static bool isOptimizableApplySite(ApplySite Apply) {
|
||||
return false;
|
||||
|
||||
// Do not optimize always_inlinable functions.
|
||||
if (callee->getInlineStrategy() == Inline_t::AlwaysInline)
|
||||
if (callee->getInlineStrategy() == Inline_t::HeuristicAlwaysInline ||
|
||||
callee->getInlineStrategy() == Inline_t::AlwaysInline)
|
||||
return false;
|
||||
|
||||
if (callee->getLinkage() != SILLinkage::Private)
|
||||
|
||||
Reference in New Issue
Block a user