Skip to content

Commit 1253dba

Browse files
committed
[NFC] IRGen: Renamed outlining helpers.
In preparation for them handling more polymorphic arguments than merely metadata.
1 parent 5d8dfde commit 1253dba

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

lib/IRGen/Outlining.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -94,25 +94,25 @@ void OutliningMetadataCollector::collectRepresentationTypeMetadata(SILType ty) {
9494
Values.insert({key, metadata});
9595
}
9696

97-
void OutliningMetadataCollector::addMetadataArguments(
98-
SmallVectorImpl<llvm::Value*> &args) const {
97+
void OutliningMetadataCollector::addPolymorphicArguments(
98+
SmallVectorImpl<llvm::Value *> &args) const {
9999
for (auto &pair : Values) {
100100
auto metadata = pair.second;
101101
assert(metadata->getType() == IGF.IGM.TypeMetadataPtrTy);
102102
args.push_back(metadata);
103103
}
104104
}
105105

106-
void OutliningMetadataCollector::addMetadataParameterTypes(
107-
SmallVectorImpl<llvm::Type*> &paramTys) const {
106+
void OutliningMetadataCollector::addPolymorphicParameterTypes(
107+
SmallVectorImpl<llvm::Type *> &paramTys) const {
108108
for (auto &pair : Values) {
109109
auto *metadata = pair.second;
110110
paramTys.push_back(metadata->getType());
111111
}
112112
}
113113

114-
void OutliningMetadataCollector::bindMetadataParameters(IRGenFunction &IGF,
115-
Explosion &params) const {
114+
void OutliningMetadataCollector::bindPolymorphicParameters(
115+
IRGenFunction &IGF, Explosion &params) const {
116116
// Note that our parameter IGF intentionally shadows the IGF that this
117117
// collector was built with.
118118
for (auto &pair : Values) {
@@ -208,7 +208,7 @@ void OutliningMetadataCollector::emitCallToOutlinedCopy(
208208
.getAddress());
209209
args.push_back(IGF.Builder.CreateElementBitCast(dest, ti.getStorageType())
210210
.getAddress());
211-
addMetadataArguments(args);
211+
addPolymorphicArguments(args);
212212

213213
llvm::Constant *outlinedFn;
214214
if (isInit && isTake) {
@@ -354,14 +354,14 @@ llvm::Constant *IRGenModule::getOrCreateOutlinedCopyAddrHelperFunction(
354354
llvm::SmallVector<llvm::Type *, 4> paramTys;
355355
paramTys.push_back(ptrTy);
356356
paramTys.push_back(ptrTy);
357-
collector.addMetadataParameterTypes(paramTys);
357+
collector.addPolymorphicParameterTypes(paramTys);
358358

359359
return getOrCreateHelperFunction(funcName, ptrTy, paramTys,
360360
[&](IRGenFunction &IGF) {
361361
auto params = IGF.collectParameters();
362362
Address src = ti.getAddressForPointer(params.claimNext());
363363
Address dest = ti.getAddressForPointer(params.claimNext());
364-
collector.bindMetadataParameters(IGF, params);
364+
collector.bindPolymorphicParameters(IGF, params);
365365
generator(IGF, dest, src, T, ti);
366366
IGF.Builder.CreateRet(dest.getAddress());
367367
},
@@ -393,7 +393,7 @@ void OutliningMetadataCollector::emitCallToOutlinedDestroy(
393393
llvm::SmallVector<llvm::Value *, 4> args;
394394
args.push_back(IGF.Builder.CreateElementBitCast(addr, ti.getStorageType())
395395
.getAddress());
396-
addMetadataArguments(args);
396+
addPolymorphicArguments(args);
397397

398398
auto outlinedFn =
399399
IGF.IGM.getOrCreateOutlinedDestroyFunction(T, ti, *this);
@@ -414,13 +414,13 @@ llvm::Constant *IRGenModule::getOrCreateOutlinedDestroyFunction(
414414
auto ptrTy = ti.getStorageType()->getPointerTo();
415415
llvm::SmallVector<llvm::Type *, 4> paramTys;
416416
paramTys.push_back(ptrTy);
417-
collector.addMetadataParameterTypes(paramTys);
417+
collector.addPolymorphicParameterTypes(paramTys);
418418

419419
return getOrCreateHelperFunction(funcName, ptrTy, paramTys,
420420
[&](IRGenFunction &IGF) {
421421
Explosion params = IGF.collectParameters();
422422
Address addr = ti.getAddressForPointer(params.claimNext());
423-
collector.bindMetadataParameters(IGF, params);
423+
collector.bindPolymorphicParameters(IGF, params);
424424
if (!IGF.outliningCanCallValueWitnesses() ||
425425
T.hasArchetype() || !canUseValueWitnessForValueOp(*this, T)) {
426426
ti.destroy(IGF, addr, T, true);
@@ -475,7 +475,7 @@ void OutliningMetadataCollector::emitCallToOutlinedRelease(
475475
assert(needsDeinit);
476476
llvm::SmallVector<llvm::Value *, 4> args;
477477
args.push_back(addr.getAddress());
478-
addMetadataArguments(args);
478+
addPolymorphicArguments(args);
479479
auto *outlinedF = cast<llvm::Function>(IGF.IGM.getOrCreateReleaseFunction(
480480
ti, T, addr.getAddress()->getType(), atomicity, *this));
481481
llvm::CallInst *call =
@@ -494,14 +494,14 @@ llvm::Constant *IRGenModule::getOrCreateReleaseFunction(
494494
manglingBits.second);
495495
llvm::SmallVector<llvm::Type *, 4> argTys;
496496
argTys.push_back(ptrTy);
497-
collector.addMetadataParameterTypes(argTys);
497+
collector.addPolymorphicParameterTypes(argTys);
498498
return getOrCreateHelperFunction(
499499
funcName, ptrTy, argTys,
500500
[&](IRGenFunction &IGF) {
501501
Explosion params = IGF.collectParameters();
502502
Address addr(params.claimNext(), loadableTI->getStorageType(),
503503
loadableTI->getFixedAlignment());
504-
collector.bindMetadataParameters(IGF, params);
504+
collector.bindPolymorphicParameters(IGF, params);
505505
Explosion loaded;
506506
loadableTI->loadAsTake(IGF, addr, loaded);
507507
loadableTI->consume(IGF, loaded, atomicity, t);

lib/IRGen/Outlining.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,11 @@ class OutliningMetadataCollector {
8383
void emitCallToOutlinedRelease(Address addr, SILType T, const TypeInfo &ti,
8484
Atomicity atomicity) const;
8585

86-
void addMetadataArguments(SmallVectorImpl<llvm::Value *> &args) const ;
87-
void addMetadataParameterTypes(SmallVectorImpl<llvm::Type *> &paramTys) const;
88-
void bindMetadataParameters(IRGenFunction &helperIGF,
89-
Explosion &params) const;
86+
void addPolymorphicArguments(SmallVectorImpl<llvm::Value *> &args) const;
87+
void
88+
addPolymorphicParameterTypes(SmallVectorImpl<llvm::Type *> &paramTys) const;
89+
void bindPolymorphicParameters(IRGenFunction &helperIGF,
90+
Explosion &params) const;
9091

9192
private:
9293
void collectFormalTypeMetadata(CanType type);

0 commit comments

Comments
 (0)