summaryrefslogtreecommitdiff
path: root/Python/adaptive.md
diff options
context:
space:
mode:
Diffstat (limited to 'Python/adaptive.md')
-rw-r--r--Python/adaptive.md13
1 files changed, 6 insertions, 7 deletions
diff --git a/Python/adaptive.md b/Python/adaptive.md
index e8161bcdd5..d978c089b2 100644
--- a/Python/adaptive.md
+++ b/Python/adaptive.md
@@ -11,7 +11,7 @@ A family of instructions has the following fundamental properties:
generated by the bytecode compiler.
* It has a single adaptive instruction that records an execution count and,
at regular intervals, attempts to specialize itself. If not specializing,
- it executes the non-adaptive instruction.
+ it executes the base implementation.
* It has at least one specialized form of the instruction that is tailored
for a particular value or set of values at runtime.
* All members of the family must have the same number of inline cache entries,
@@ -22,19 +22,18 @@ A family of instructions has the following fundamental properties:
The current implementation also requires the following,
although these are not fundamental and may change:
-* All families uses one or more inline cache entries,
+* All families use one or more inline cache entries,
the first entry is always the counter.
-* All instruction names should start with the name of the non-adaptive
+* All instruction names should start with the name of the adaptive
instruction.
-* The adaptive instruction should end in `_ADAPTIVE`.
* Specialized forms should have names describing their specialization.
## Example family
-The `LOAD_GLOBAL` instruction (in Python/ceval.c) already has an adaptive
+The `LOAD_GLOBAL` instruction (in Python/bytecodes.c) already has an adaptive
family that serves as a relatively simple example.
-The `LOAD_GLOBAL_ADAPTIVE` instruction performs adaptive specialization,
+The `LOAD_GLOBAL` instruction performs adaptive specialization,
calling `_Py_Specialize_LoadGlobal()` when the counter reaches zero.
There are two specialized instructions in the family, `LOAD_GLOBAL_MODULE`
@@ -138,5 +137,5 @@ to eliminate the branches.
Finally, take care that stats are gather correctly.
After the last `DEOPT_IF` has passed, a hit should be recorded with
`STAT_INC(BASE_INSTRUCTION, hit)`.
-After a optimization has been deferred in the `ADAPTIVE` form,
+After an optimization has been deferred in the adaptive instruction,
that should be recorded with `STAT_INC(BASE_INSTRUCTION, deferred)`.