Introduce @specialized attribute

Implements SE-0460 -- the non-underscored version of @specialized.

It allows to specify "internal" (not abi affecting) specializations.

rdar://150033316
This commit is contained in:
Arnold Schwaighofer
2025-05-19 10:54:02 -07:00
parent 55b29fea4b
commit 13ff5abdb8
39 changed files with 644 additions and 189 deletions

View File

@@ -65,8 +65,8 @@ void SILFunctionBuilder::addFunctionAttributes(
F->addSemanticsAttr(semantics::FORCE_EMIT_OPT_REMARK_PREFIX);
// Propagate @_specialize.
for (auto *A : Attrs.getAttributes<SpecializeAttr>()) {
auto *SA = cast<SpecializeAttr>(A);
for (auto *A : Attrs.getAttributes<AbstractSpecializeAttr>()) {
auto *SA = cast<AbstractSpecializeAttr>(A);
auto kind =
SA->getSpecializationKind() == SpecializeAttr::SpecializationKind::Full
? SILSpecializeAttr::SpecializationKind::Full