Mark Shannon <[email protected]> added the comment:
If some misses are caused by mixed int/float operands, it might be worth
investigating whether these occur in loops.
Most JIT compilers perform some sort of loop peeling to counter this form of
type instability.
E.g.
x = 0
for ...
x += some_float()
`x` is an int for the first iteration, and a float for the others.
By unpeeling the first iteration, we get type stability in the loop
x = 0
#first iteration
x += some_float()
for ... #Remaining iterations
x += some_float() # x is always a float here.
----------
nosy: +Mark.Shannon
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45367>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com