|
Enzyme main
|
#include "llvm/ADT/StringRef.h"#include "llvm/ADT/StringSwitch.h"#include <optional>

Go to the source code of this file.
Classes | |
| struct | enzyme_markers::MarkerInfo |
| struct | enzyme_markers::InterleaveSplit |
| Where the primals stop and the shadows start. More... | |
Namespaces | |
| namespace | enzyme_markers |
Enumerations | |
| enum class | enzyme_markers::MarkerRole { enzyme_markers::Activity , enzyme_markers::Interleave , enzyme_markers::CallFlag , enzyme_markers::Modifier } |
| What a marker does to the call it appears in. More... | |
| enum class | DIFFE_TYPE { OUT_DIFF = 0 , DUP_ARG = 1 , CONSTANT = 2 , DUP_NONEED = 3 } |
| Potential differentiable argument classifications. More... | |
Functions | |
| std::optional< MarkerInfo > | enzyme_markers::lookupEnzymeMarker (llvm::StringRef name) |
The one description of the __enzyme_* argument markers. | |
| bool | enzyme_markers::markerActivityTakesShadow (DIFFE_TYPE a) |
| Whether an activity is one that a shadow goes with. | |
| template<typename MarkerAtFn > | |
| InterleaveSplit | enzyme_markers::findEnzymeInterleave (unsigned first, unsigned count, MarkerAtFn markerAt) |
Find enzyme_interleave among the operands, which has to be done before walking them: it says where the shadows are, and the walk needs that from the first argument on. | |
|
strong |
Potential differentiable argument classifications.
| Enumerator | |
|---|---|
| OUT_DIFF | |
| DUP_ARG | |
| CONSTANT | |
| DUP_NONEED | |
Definition at line 50 of file EnzymeCallMarkers.h.