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.