[SIL][PackageCMO] Allow optimizing [serialized_for_pkg] functions during SIL

inlining, generic/closure specialization, and devirtualization optimization passes.

SILFunction::canBeInlinedIntoCaller now exlicitly requires a caller's SerializedKind_t arg.
isAnySerialized() is added as a convenience function that checks if [serialized] or [serialized_for_pkg].

Resolves rdar://128704752
This commit is contained in:
Ellie Shin
2024-05-23 16:14:15 -07:00
parent 67e9df028e
commit 4ecfc96578
25 changed files with 123 additions and 178 deletions

View File

@@ -78,11 +78,10 @@ bool SILGlobalVariable::shouldBePreservedForDebugger() const {
bool SILGlobalVariable::isSerialized() const {
return SerializedKind_t(Serialized) == IsSerialized;
}
bool SILGlobalVariable::isSerializedForPackage() const {
return SerializedKind_t(Serialized) == IsSerializedForPackage;
}
bool SILGlobalVariable::isNotSerialized() const {
return SerializedKind_t(Serialized) == IsNotSerialized;
bool SILGlobalVariable::isAnySerialized() const {
return SerializedKind_t(Serialized) == IsSerialized ||
SerializedKind_t(Serialized) == IsSerializedForPackage;
}
/// Get this global variable's fragile attribute.