What’s the meaning of the four compilation levels: 0, 1 , 2, 3?

In the compilation phase, there are four compilation levels: 0, 1 , 2, 3.
0 means “SimplifyInference”.
1 means “OpFusion”.
2 means “FoldConstant”.
3 means “CombineParallelConv2D”, “FoldScaleAxis”, “AlterOpLayout”, “CanonicalizeOps” and “EliminateCommonSubexpr”.
They look like Abbreviation. What’s the real meaning of them? And why is it neccessary to do it?
I think 3 is the best. Why the default is 2?