@@ -424,7 +424,7 @@ std::string ASTMangler::mangleObjCAsyncCompletionHandlerImpl(
424
424
std::string ASTMangler::mangleAutoDiffDerivativeFunction (
425
425
const AbstractFunctionDecl *originalAFD,
426
426
AutoDiffDerivativeFunctionKind kind,
427
- AutoDiffConfig config,
427
+ const AutoDiffConfig & config,
428
428
bool isVTableThunk) {
429
429
beginManglingWithAutoDiffOriginalFunction (originalAFD);
430
430
appendAutoDiffFunctionParts (
@@ -434,7 +434,7 @@ std::string ASTMangler::mangleAutoDiffDerivativeFunction(
434
434
435
435
std::string ASTMangler::mangleAutoDiffLinearMap (
436
436
const AbstractFunctionDecl *originalAFD, AutoDiffLinearMapKind kind,
437
- AutoDiffConfig config) {
437
+ const AutoDiffConfig & config) {
438
438
beginManglingWithAutoDiffOriginalFunction (originalAFD);
439
439
appendAutoDiffFunctionParts (" TJ" , getAutoDiffFunctionKind (kind), config);
440
440
return finalize ();
@@ -456,7 +456,7 @@ void ASTMangler::beginManglingWithAutoDiffOriginalFunction(
456
456
457
457
void ASTMangler::appendAutoDiffFunctionParts (StringRef op,
458
458
AutoDiffFunctionKind kind,
459
- AutoDiffConfig config) {
459
+ const AutoDiffConfig & config) {
460
460
if (auto sig = config.derivativeGenericSignature )
461
461
appendGenericSignature (sig);
462
462
auto kindCode = (char )kind;
@@ -486,8 +486,8 @@ void ASTMangler::appendIndexSubset(IndexSubset *indices) {
486
486
}
487
487
488
488
static NodePointer mangleSILDifferentiabilityWitnessAsNode (
489
- StringRef originalName, DifferentiabilityKind kind, AutoDiffConfig config,
490
- Demangler &demangler) {
489
+ StringRef originalName, DifferentiabilityKind kind,
490
+ const AutoDiffConfig &config, Demangler &demangler) {
491
491
auto *diffWitnessNode = demangler.createNode (
492
492
Node::Kind::DifferentiabilityWitness);
493
493
auto origNode = demangler.demangleSymbol (originalName);
@@ -518,8 +518,9 @@ static NodePointer mangleSILDifferentiabilityWitnessAsNode(
518
518
return diffWitnessNode;
519
519
}
520
520
521
- std::string ASTMangler::mangleSILDifferentiabilityWitness (
522
- StringRef originalName, DifferentiabilityKind kind, AutoDiffConfig config) {
521
+ std::string ASTMangler::mangleSILDifferentiabilityWitness (StringRef originalName,
522
+ DifferentiabilityKind kind,
523
+ const AutoDiffConfig &config) {
523
524
// If the original name was a mangled name, differentiability witnesses must
524
525
// be mangled as node because they contain generic signatures which may repeat
525
526
// entities in the original function name. Mangling as node will make sure the
@@ -545,7 +546,8 @@ std::string ASTMangler::mangleSILDifferentiabilityWitness(
545
546
546
547
std::string ASTMangler::mangleAutoDiffGeneratedDeclaration (
547
548
AutoDiffGeneratedDeclarationKind declKind, StringRef origFnName,
548
- unsigned bbId, AutoDiffLinearMapKind linearMapKind, AutoDiffConfig config) {
549
+ unsigned bbId, AutoDiffLinearMapKind linearMapKind,
550
+ const AutoDiffConfig &config) {
549
551
beginManglingWithoutPrefix ();
550
552
551
553
Buffer << " _AD__" << origFnName << " _bb" + std::to_string (bbId);
0 commit comments