Major fixes and new features
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
42
venv/lib/python3.12/site-packages/mypyc/doc/future.md
Normal file
42
venv/lib/python3.12/site-packages/mypyc/doc/future.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Future
|
||||
|
||||
This document introduces some ideas for future improvements.
|
||||
|
||||
## Basic Optimizations
|
||||
|
||||
Implement basic optimizations such as common subexpression elimination and
|
||||
loop invariant code motion.
|
||||
|
||||
Importantly, common subexpression elimination could be used to avoid
|
||||
redundant type checks.
|
||||
|
||||
## Operation-specific Optimizations
|
||||
|
||||
Some operations or combinations of successive operations can be
|
||||
replaced with more efficient operations. Examples:
|
||||
|
||||
* If `s` is a string, `s[i] == 'x'` doesn't need to construct the
|
||||
intermediate single-character string object `s[i]` but just compare
|
||||
the character value to `ord('x')`.
|
||||
|
||||
* `a + ':' + b` (two string concetenations) can be implemented as
|
||||
single three-operand concatenation that doesn't construct an
|
||||
intermediate object.
|
||||
|
||||
* `x in {1, 3}` can be translated into `x == 1 or x == 3` (more
|
||||
generally we need to evaluate all right-hand-side items).
|
||||
|
||||
## Integer Range Analysis
|
||||
|
||||
Implement integer range analysis. This can be used in various ways:
|
||||
|
||||
* Use untagged representations for some registers.
|
||||
* Use faster integer arithmetic operations for operations that
|
||||
only deal with short integers or that can't overflow.
|
||||
* Remove redundant list and string index checks.
|
||||
|
||||
## Always Defined Attributes
|
||||
|
||||
Somehow make it possible to enforce that attributes in a class are always
|
||||
defined. This makes attribute access faster since we don't need to explicitly
|
||||
check if the attribute is defined.
|
||||
Reference in New Issue
Block a user