All examples that I found to illustrate performance bottlenecks of type instability in Julia < 0.6 are no longer valid in Julia >= 0.7, as they typically play with two or few possible types, but now the compiler is efficient also in the handling of Union{T1,T2,..}
types, and so the differences with the corresponding type stable version disappear.
Can you indicate an example of a simple type-unstable function that still have large performance improvements when it is made type-stable ?
Typically the most striking difference is when type instability is introduced by global variables. Here is an example of using barrier function to remove type instability:
And here is the benchmark:
Another common case of performance loss is when you use containers of abstract eltype (but I understand that you did not classify this as function type unstability, as it is rather data type instability).