◐ Shell
clean mode source ↗

Message 403290 - Python tracker

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.