Skip to content

Commit ec5da74

Browse files
authored
[AutoDiff] NFC: garden differentiation transform. (#32770)
Rename "emitters" to "cloners", for consistency: - `JVPEmitter` -> `JVPCloner` - `VJPEmitter` -> `VJPCloner` - `PullbackEmitter` -> `PullbackCloner` Improve `PullbackCloner` documentation. - Document previously undocumented methods. - Update outdated documentation. - For adjoint value accumulation helpers: rename "buffer access" occurrences to "address". Pullback generation no logner uses buffer accesses (`begin_apply`).
1 parent e07df26 commit ec5da74

File tree

8 files changed

+454
-455
lines changed

8 files changed

+454
-455
lines changed

include/swift/SILOptimizer/Differentiation/JVPEmitter.h renamed to include/swift/SILOptimizer/Differentiation/JVPCloner.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===--- JVPEmitter.h - JVP Generation in Differentiation -----*- C++ -*---===//
1+
//===--- JVPCloner.h - JVP function generation ----------------*- C++ -*---===//
22
//
33
// This source file is part of the Swift.org open source project
44
//
@@ -15,8 +15,8 @@
1515
//
1616
//===----------------------------------------------------------------------===//
1717

18-
#ifndef SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_JVPEMITTER_H
19-
#define SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_JVPEMITTER_H
18+
#ifndef SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_JVPCLONER_H
19+
#define SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_JVPCLONER_H
2020

2121
#include "swift/SILOptimizer/Differentiation/AdjointValue.h"
2222
#include "swift/SILOptimizer/Differentiation/DifferentiationInvoker.h"
@@ -40,8 +40,8 @@ namespace autodiff {
4040

4141
class ADContext;
4242

43-
class JVPEmitter final
44-
: public TypeSubstCloner<JVPEmitter, SILOptFunctionBuilder> {
43+
class JVPCloner final
44+
: public TypeSubstCloner<JVPCloner, SILOptFunctionBuilder> {
4545
private:
4646
/// The global context.
4747
ADContext &context;
@@ -368,9 +368,9 @@ class JVPEmitter final
368368
void prepareForDifferentialGeneration();
369369

370370
public:
371-
explicit JVPEmitter(ADContext &context, SILFunction *original,
372-
SILDifferentiabilityWitness *witness, SILFunction *jvp,
373-
DifferentiationInvoker invoker);
371+
explicit JVPCloner(ADContext &context, SILFunction *original,
372+
SILDifferentiabilityWitness *witness, SILFunction *jvp,
373+
DifferentiationInvoker invoker);
374374

375375
static SILFunction *
376376
createEmptyDifferential(ADContext &context,
@@ -411,4 +411,4 @@ class JVPEmitter final
411411
} // end namespace autodiff
412412
} // end namespace swift
413413

414-
#endif // SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPEMITTER_H
414+
#endif // SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_JVPCLONER_H

include/swift/SILOptimizer/Differentiation/PullbackEmitter.h renamed to include/swift/SILOptimizer/Differentiation/PullbackCloner.h

Lines changed: 129 additions & 104 deletions
Large diffs are not rendered by default.

include/swift/SILOptimizer/Differentiation/VJPEmitter.h renamed to include/swift/SILOptimizer/Differentiation/VJPCloner.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===--- VJPEmitter.h - VJP Generation in differentiation -----*- C++ -*---===//
1+
//===--- VJPCloner.h - VJP function generation ----------------*- C++ -*---===//
22
//
33
// This source file is part of the Swift.org open source project
44
//
@@ -15,8 +15,8 @@
1515
//
1616
//===----------------------------------------------------------------------===//
1717

18-
#ifndef SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPEMITTER_H
19-
#define SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPEMITTER_H
18+
#ifndef SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPCLONER_H
19+
#define SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPCLONER_H
2020

2121
#include "swift/SILOptimizer/Analysis/DifferentiableActivityAnalysis.h"
2222
#include "swift/SILOptimizer/Differentiation/DifferentiationInvoker.h"
@@ -35,11 +35,11 @@ class SILInstruction;
3535
namespace autodiff {
3636

3737
class ADContext;
38-
class PullbackEmitter;
38+
class PullbackCloner;
3939

40-
class VJPEmitter final
41-
: public TypeSubstCloner<VJPEmitter, SILOptFunctionBuilder> {
42-
friend class PullbackEmitter;
40+
class VJPCloner final
41+
: public TypeSubstCloner<VJPCloner, SILOptFunctionBuilder> {
42+
friend class PullbackCloner;
4343

4444
private:
4545
/// The global context.
@@ -90,9 +90,9 @@ class VJPEmitter final
9090
SILAutoDiffIndices indices, SILFunction *vjp);
9191

9292
public:
93-
explicit VJPEmitter(ADContext &context, SILFunction *original,
94-
SILDifferentiabilityWitness *witness, SILFunction *vjp,
95-
DifferentiationInvoker invoker);
93+
explicit VJPCloner(ADContext &context, SILFunction *original,
94+
SILDifferentiabilityWitness *witness, SILFunction *vjp,
95+
DifferentiationInvoker invoker);
9696

9797
SILFunction *createEmptyPullback();
9898

@@ -170,4 +170,4 @@ class VJPEmitter final
170170
} // end namespace autodiff
171171
} // end namespace swift
172172

173-
#endif // SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPEMITTER_H
173+
#endif // SWIFT_SILOPTIMIZER_UTILS_DIFFERENTIATION_VJPCLONER_H

lib/SILOptimizer/Differentiation/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ target_sources(swiftSILOptimizer PRIVATE
22
ADContext.cpp
33
Common.cpp
44
DifferentiationInvoker.cpp
5-
JVPEmitter.cpp
5+
JVPCloner.cpp
66
LinearMapInfo.cpp
7-
PullbackEmitter.cpp
7+
PullbackCloner.cpp
88
Thunk.cpp
9-
VJPEmitter.cpp)
9+
VJPCloner.cpp)

0 commit comments

Comments
 (0)