Skip to content

Commit 600a6f3

Browse files
committed
IRGen: Remove CanGenericSignature::getGenericEnvironment()
1 parent 1e94466 commit 600a6f3

File tree

7 files changed

+6
-47
lines changed

7 files changed

+6
-47
lines changed

include/swift/AST/ASTContext.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -876,12 +876,6 @@ class ASTContext final {
876876
GenericSignatureBuilder *getOrCreateGenericSignatureBuilder(
877877
CanGenericSignature sig);
878878

879-
/// Retrieve or create the canonical generic environment of a canonical
880-
/// generic signature builder.
881-
GenericEnvironment *getOrCreateCanonicalGenericEnvironment(
882-
GenericSignatureBuilder *builder,
883-
GenericSignature *sig);
884-
885879
/// Retrieve a generic signature with a single unconstrained type parameter,
886880
/// like `<T>`.
887881
CanGenericSignature getSingleGenericParameterSignature() const;

include/swift/AST/Type.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -604,10 +604,6 @@ class CanGenericSignature {
604604
explicit CanGenericSignature(GenericSignature *Signature);
605605
ArrayRef<CanTypeWrapper<GenericTypeParamType>> getGenericParams() const;
606606

607-
/// Retrieve the canonical generic environment associated with this
608-
/// generic signature.
609-
GenericEnvironment *getGenericEnvironment() const;
610-
611607
GenericSignature *operator->() const {
612608
return Signature;
613609
}

lib/AST/ASTContext.cpp

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -370,13 +370,6 @@ FOR_KNOWN_FOUNDATION_TYPES(CACHE_FOUNDATION_DECL)
370370
llvm::DenseMap<GenericSignature *, std::unique_ptr<GenericSignatureBuilder>>
371371
GenericSignatureBuilders;
372372

373-
/// Canonical generic environments for canonical generic signatures.
374-
///
375-
/// The keys are the generic signature builders in
376-
/// \c GenericSignatureBuilders.
377-
llvm::DenseMap<GenericSignatureBuilder *, GenericEnvironment *>
378-
CanonicalGenericEnvironments;
379-
380373
/// The set of function types.
381374
llvm::FoldingSet<FunctionType> FunctionTypes;
382375

@@ -1623,22 +1616,6 @@ GenericSignatureBuilder *ASTContext::getOrCreateGenericSignatureBuilder(
16231616
return builder;
16241617
}
16251618

1626-
GenericEnvironment *ASTContext::getOrCreateCanonicalGenericEnvironment(
1627-
GenericSignatureBuilder *builder,
1628-
GenericSignature *sig) {
1629-
auto arena = getArena(sig);
1630-
auto &canonicalGenericEnvironments =
1631-
getImpl().getArena(arena).CanonicalGenericEnvironments;
1632-
1633-
auto known = canonicalGenericEnvironments.find(builder);
1634-
if (known != canonicalGenericEnvironments.end())
1635-
return known->second;
1636-
1637-
auto env = sig->getGenericEnvironment();
1638-
canonicalGenericEnvironments[builder] = env;
1639-
return env;
1640-
}
1641-
16421619
Optional<llvm::TinyPtrVector<ValueDecl *>>
16431620
OverriddenDeclsRequest::getCachedResult() const {
16441621
auto decl = std::get<0>(getStorage());

lib/AST/GenericSignature.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -701,14 +701,6 @@ CanType GenericSignature::getCanonicalTypeInContext(Type type) {
701701
return getCanonicalTypeInContext(type, builder);
702702
}
703703

704-
GenericEnvironment *CanGenericSignature::getGenericEnvironment() const {
705-
// generic signature builders are stored on the ASTContext.
706-
auto &ctx = getGenericParams()[0]->getASTContext();
707-
return ctx.getOrCreateCanonicalGenericEnvironment(
708-
ctx.getOrCreateGenericSignatureBuilder(*this),
709-
*this);
710-
}
711-
712704
ArrayRef<CanTypeWrapper<GenericTypeParamType>>
713705
CanGenericSignature::getGenericParams() const{
714706
auto params = Signature->getGenericParams().getOriginalArray();

lib/IRGen/GenType.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@ void TypeConverter::popGenericContext(CanGenericSignature signature) {
12881288

12891289
GenericEnvironment *TypeConverter::getGenericEnvironment() {
12901290
auto genericSig = IGM.getSILTypes().getCurGenericContext();
1291-
return genericSig->getCanonicalSignature().getGenericEnvironment();
1291+
return genericSig->getCanonicalSignature()->getGenericEnvironment();
12921292
}
12931293

12941294
GenericEnvironment *IRGenModule::getGenericEnvironment() {
@@ -1562,7 +1562,7 @@ ArchetypeType *TypeConverter::getExemplarArchetype(ArchetypeType *t) {
15621562
// Dig out the canonical generic environment.
15631563
auto genericSig = genericEnv->getGenericSignature();
15641564
auto canGenericSig = genericSig->getCanonicalSignature();
1565-
auto canGenericEnv = canGenericSig.getGenericEnvironment();
1565+
auto canGenericEnv = canGenericSig->getGenericEnvironment();
15661566
if (canGenericEnv == genericEnv) return t;
15671567

15681568
// Map the archetype out of its own generic environment and into the
@@ -2277,7 +2277,7 @@ bool TypeConverter::isExemplarArchetype(ArchetypeType *arch) const {
22772277
// Dig out the canonical generic environment.
22782278
auto genericSig = genericEnv->getGenericSignature();
22792279
auto canGenericSig = genericSig->getCanonicalSignature();
2280-
auto canGenericEnv = canGenericSig.getGenericEnvironment();
2280+
auto canGenericEnv = canGenericSig->getGenericEnvironment();
22812281

22822282
// If this archetype is in the canonical generic environment, it's an
22832283
// exemplar archetype.

lib/IRGen/LoadableByAddress.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ using namespace swift;
3737
using namespace swift::irgen;
3838

3939
static GenericEnvironment *getGenericEnvironment(CanSILFunctionType loweredTy) {
40-
return loweredTy->getGenericSignature().getGenericEnvironment();
40+
return loweredTy->getGenericSignature()->getGenericEnvironment();
4141
}
4242

4343
class LargeSILTypeMapper {

lib/SIL/TypeLowering.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ namespace {
485485
// signature plumbed through.
486486
if (Sig && type->hasTypeParameter()) {
487487
type = Sig->getCanonicalSignature()
488-
.getGenericEnvironment()
488+
->getGenericEnvironment()
489489
->mapTypeIntoContext(type)
490490
->getCanonicalType();
491491
}
@@ -2558,7 +2558,7 @@ TypeConverter::getInterfaceBoxTypeForCapture(ValueDecl *captured,
25582558
auto loweredContextType = loweredInterfaceType;
25592559
auto contextBoxTy = boxTy;
25602560
if (signature) {
2561-
auto env = signature.getGenericEnvironment();
2561+
auto env = signature->getGenericEnvironment();
25622562
loweredContextType = env->mapTypeIntoContext(loweredContextType)
25632563
->getCanonicalType();
25642564
contextBoxTy = cast<SILBoxType>(

0 commit comments

Comments
 (0)