Skip to content

Commit a7518ac

Browse files
authored
Merge pull request #76255 from meg-gupta/disablemangling
Delete lifetime dependence mangling
2 parents 3b6d5b0 + 1005752 commit a7518ac

19 files changed

+43
-143
lines changed

docs/ABI/Mangling.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,10 +752,6 @@ Types
752752
differentiable ::= 'Yjr' // @differentiable(reverse) on function type
753753
differentiable ::= 'Yjd' // @differentiable on function type
754754
differentiable ::= 'Yjl' // @differentiable(_linear) on function type
755-
#if SWIFT_RUNTIME_VERSION >= 5.TBD
756-
lifetime-dependence ::= 'Yli' INDEX-SUBSET '_' // inherit lifetime dependence
757-
lifetime-dependence ::= 'Yls' INDEX-SUBSET '_' // scoped lifetime dependence
758-
#endif
759755
type-list ::= list-type '_' list-type* // list of types
760756
type-list ::= empty-list
761757

include/swift/AST/ASTMangler.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,6 @@ class ASTMangler : public Mangler {
9191
/// a critical role.
9292
bool AllowTypedThrows = true;
9393

94-
/// If enabled, lifetime dependencies can be encoded in the mangled name.
95-
bool AllowLifetimeDependencies = true;
96-
9794
/// If enabled, declarations annotated with @_originallyDefinedIn are mangled
9895
/// as if they're part of their original module. Disabled for debug mangling,
9996
/// because lldb wants to find declarations in the modules they're currently

include/swift/Demangling/Demangle.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,6 @@ enum class MangledDifferentiabilityKind : char {
136136
Linear = 'l',
137137
};
138138

139-
enum class MangledLifetimeDependenceKind : char { Inherit = 'i', Scope = 's' };
140-
141139
/// The pass that caused the specialization to occur. We use this to make sure
142140
/// that two passes that generate similar changes do not yield the same
143141
/// mangling. This currently cannot happen, so this is just a safety measure

include/swift/Demangling/DemangleNodes.def

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,6 @@ NODE(AsyncRemoved)
389389

390390
// Added in Swift 5.TBD
391391
NODE(ObjectiveCProtocolSymbolicReference)
392-
NODE(LifetimeDependence)
393392

394393
NODE(OutlinedInitializeWithCopyNoValueWitness)
395394
NODE(OutlinedAssignWithTakeNoValueWitness)

include/swift/Demangling/Demangler.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,8 +637,6 @@ class Demangler : public NodeFactory {
637637
bool demangleBoundGenerics(Vector<NodePointer> &TypeListList,
638638
NodePointer &RetroactiveConformances);
639639

640-
NodePointer demangleLifetimeDependence();
641-
642640
NodePointer demangleIntegerType();
643641

644642
void dump();

lib/AST/ASTMangler.cpp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3264,10 +3264,6 @@ void ASTMangler::appendFunctionResultType(
32643264
} else {
32653265
appendType(resultType, sig, forDecl);
32663266
}
3267-
3268-
if (AllowLifetimeDependencies && lifetimeDependence.has_value()) {
3269-
appendLifetimeDependence(*lifetimeDependence);
3270-
}
32713267
}
32723268

32733269
void ASTMangler::appendTypeList(Type listTy, GenericSignature sig,
@@ -3320,31 +3316,12 @@ void ASTMangler::appendParameterTypeListElement(
33203316
if (flags.isCompileTimeConst())
33213317
appendOperator("Yt");
33223318

3323-
if (AllowLifetimeDependencies && lifetimeDependence) {
3324-
appendLifetimeDependence(*lifetimeDependence);
3325-
}
3326-
33273319
if (!name.empty())
33283320
appendIdentifier(name.str());
33293321
if (flags.isVariadic())
33303322
appendOperator("d");
33313323
}
33323324

3333-
void ASTMangler::appendLifetimeDependence(LifetimeDependenceInfo info) {
3334-
if (auto *inheritIndices = info.getInheritIndices()) {
3335-
assert(!inheritIndices->isEmpty());
3336-
appendOperator("Yli");
3337-
appendIndexSubset(inheritIndices);
3338-
appendOperator("_");
3339-
}
3340-
if (auto *scopeIndices = info.getScopeIndices()) {
3341-
assert(!scopeIndices->isEmpty());
3342-
appendOperator("Yls");
3343-
appendIndexSubset(scopeIndices);
3344-
appendOperator("_");
3345-
}
3346-
}
3347-
33483325
void ASTMangler::appendTupleTypeListElement(Identifier name, Type elementType,
33493326
GenericSignature sig,
33503327
const ValueDecl *forDecl) {

lib/Demangling/Demangler.cpp

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -990,11 +990,6 @@ NodePointer Demangler::demangleTypeAnnotation() {
990990
case 'u':
991991
return createType(
992992
createWithChild(Node::Kind::Sending, popTypeAndGetChild()));
993-
case 'l': {
994-
auto *node = demangleLifetimeDependence();
995-
addChild(node, popTypeAndGetChild());
996-
return createType(node);
997-
}
998993
default:
999994
return nullptr;
1000995
}
@@ -3158,31 +3153,6 @@ NodePointer Demangler::demangleDifferentiableFunctionType() {
31583153
Node::Kind::DifferentiableFunctionType, (Node::IndexType)kind);
31593154
}
31603155

3161-
static std::optional<MangledLifetimeDependenceKind>
3162-
getMangledLifetimeDependenceKind(char nextChar) {
3163-
switch (nextChar) {
3164-
case 's':
3165-
return MangledLifetimeDependenceKind::Scope;
3166-
case 'i':
3167-
return MangledLifetimeDependenceKind::Inherit;
3168-
}
3169-
return std::nullopt;
3170-
}
3171-
3172-
NodePointer Demangler::demangleLifetimeDependence() {
3173-
auto kind = getMangledLifetimeDependenceKind(nextChar());
3174-
if (!kind.has_value()) {
3175-
return nullptr;
3176-
}
3177-
auto result = createNode(Node::Kind::LifetimeDependence);
3178-
result =
3179-
addChild(result, createNode(Node::Kind::Index, (Node::IndexType)*kind));
3180-
result = addChild(result, demangleIndexSubset());
3181-
if (!nextIf('_'))
3182-
return nullptr;
3183-
return result;
3184-
}
3185-
31863156
std::string Demangler::demangleBridgedMethodParams() {
31873157
if (nextIf('_'))
31883158
return std::string();

lib/Demangling/NodePrinter.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,6 @@ class NodePrinter {
648648
case Node::Kind::SymbolicExtendedExistentialType:
649649
case Node::Kind::HasSymbolQuery:
650650
case Node::Kind::ObjectiveCProtocolSymbolicReference:
651-
case Node::Kind::LifetimeDependence:
652651
case Node::Kind::DependentGenericInverseConformanceRequirement:
653652
case Node::Kind::DependentGenericParamValueMarker:
654653
return false;
@@ -1814,21 +1813,6 @@ NodePointer NodePrinter::print(NodePointer Node, unsigned depth,
18141813
Printer << "@noDerivative ";
18151814
print(Node->getChild(0), depth + 1);
18161815
return nullptr;
1817-
case Node::Kind::LifetimeDependence: {
1818-
auto kind = (MangledLifetimeDependenceKind)Node->getChild(0)->getIndex();
1819-
switch (kind) {
1820-
case MangledLifetimeDependenceKind::Inherit:
1821-
Printer << "inherit lifetime dependence: ";
1822-
break;
1823-
case MangledLifetimeDependenceKind::Scope:
1824-
Printer << "scope lifetime dependence: ";
1825-
break;
1826-
}
1827-
print(Node->getChild(1), depth + 1);
1828-
Printer << " ";
1829-
print(Node->getChild(2), depth + 1);
1830-
return nullptr;
1831-
}
18321816
case Node::Kind::NonObjCAttribute:
18331817
Printer << "@nonobjc ";
18341818
return nullptr;

lib/Demangling/OldRemangler.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1943,10 +1943,6 @@ ManglingError Remangler::mangleNoDerivative(Node *node, unsigned depth) {
19431943
return mangleSingleChildNode(node, depth + 1); // type
19441944
}
19451945

1946-
ManglingError Remangler::mangleLifetimeDependence(Node *node, unsigned depth) {
1947-
return MANGLING_ERROR(ManglingError::UnsupportedNodeKind, node);
1948-
}
1949-
19501946
ManglingError Remangler::mangleTuple(Node *node, unsigned depth) {
19511947
size_t NumElems = node->getNumChildren();
19521948
if (NumElems > 0 &&

lib/Demangling/Remangler.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2250,16 +2250,6 @@ ManglingError Remangler::mangleNoDerivative(Node *node, unsigned depth) {
22502250
return ManglingError::Success;
22512251
}
22522252

2253-
ManglingError Remangler::mangleLifetimeDependence(Node *node, unsigned depth) {
2254-
RETURN_IF_ERROR(mangleChildNode(node, 2, depth + 1));
2255-
Buffer
2256-
<< "Yl"
2257-
<< (char)node->getChild(0)->getIndex(); // mangle lifetime dependence kind
2258-
RETURN_IF_ERROR(mangleChildNode(node, 1, depth + 1)); // mangle index subset
2259-
Buffer << "_";
2260-
return ManglingError::Success;
2261-
}
2262-
22632253
ManglingError Remangler::mangleInfixOperator(Node *node, unsigned depth) {
22642254
mangleIdentifierImpl(node, /*isOperator*/ true);
22652255
Buffer << "oi";

0 commit comments

Comments
 (0)