-
-
Notifications
You must be signed in to change notification settings - Fork 37k
Tier 2 abstract interpreter for the optimizer #107557
Copy link
Copy link
Closed
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetype-featureA feature request or enhancementA feature request or enhancement
Description
Activity
Metadata
Metadata
Assignees
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetype-featureA feature request or enhancementA feature request or enhancement
Feature or enhancement
(Mega issue) Start doing optimization passes on tier 2 bytecode.
Pitch
The target of tier 2 optimizations is tier 2 bytecode. Abstract interpretation is a natural way to analyze and optimize tier 2 bytecode. We can generate the abstract interpreter from the bytecode DSL
Previous discussion
See faster-cpython/ideas#611
Todo list:
staticcomes fromLOAD_CONST. Assume everything else isdynamic.The initial partial evaluation will be bad because it does not have that much
staticinformation (we need watchers for methods, functions, global, etc., to make them effectively static). However, that phase can be done in the region formation step before partial evaluation. Someone else can pick them up as a parallel workstream.Linked PRs