classification
Title: The DISPATCH() macro is not as efficient as it could be.
Type: Stage: patch review
Components: Versions:
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Mark.Shannon
Priority: normal Keywords: patch

Created on 2021-04-07 09:35 by Mark.Shannon, last changed 2021-04-13 10:08 by Mark.Shannon.

Pull Requests
URL Status Linked Edit
PR 25244 merged Mark.Shannon, 2021-04-07 10:16
PR 25276 merged Mark.Shannon, 2021-04-08 11:14
Messages (3)
msg390410 - (view) Author: Mark Shannon (Mark.Shannon) * (Python committer) Date: 2021-04-07 09:35
The DISPATCH() macro has two failings.

1. Its check for tracing involves too much pointer chaser.

2. The logic assumes that computed-gotos is the "fast path" which makes switch dispatch, and therefore Python on Windows unnecessarily slow.
msg390522 - (view) Author: Mark Shannon (Mark.Shannon) * (Python committer) Date: 2021-04-08 10:22
New changeset 28d28e053db6b69d91c2dfd579207cd8ccbc39e7 by Mark Shannon in branch 'master':
bpo-43760: Streamline dispatch sequence for machines without computed gotos. (GH-25244)
https://github.com/python/cpython/commit/28d28e053db6b69d91c2dfd579207cd8ccbc39e7
msg390951 - (view) Author: Mark Shannon (Mark.Shannon) * (Python committer) Date: 2021-04-13 10:08
New changeset 9e7b2076fb4380987ad0262c4c0ca900b06475ad by Mark Shannon in branch 'master':
bpo-43760: Speed up check for tracing in interpreter dispatch (#25276)
https://github.com/python/cpython/commit/9e7b2076fb4380987ad0262c4c0ca900b06475ad
History
Date User Action Args
2021-04-13 10:08:31Mark.Shannonsetmessages: + msg390951
2021-04-08 11:14:23Mark.Shannonsetpull_requests: + pull_request24013
2021-04-08 10:22:59Mark.Shannonsetmessages: + msg390522
2021-04-07 10:16:34Mark.Shannonsetkeywords: + patch
stage: patch review
pull_requests: + pull_request23984
2021-04-07 09:35:49Mark.Shannoncreate