Please sign in to comment.
Reduce time spent in lubs
Reduce time spent in lubs by making depth more adaptive. It now takes into account separately the depth of the lub types and the maximal depth of theior base type sequences. It cuts depth more aggressively if it is the base types instead of the types themselves that grow deep. The old truncation behavior is retained under option -Xfull-lubs Another change is that we now track depth more precisely, which should also help or at least allow better statistics. Also added statistics that measure #lubs and time spent in them.
- Loading branch information
Showing with 152 additions and 78 deletions.
- +1 −0 src/compiler/scala/tools/nsc/settings/ScalaSettings.scala
- +3 −0 src/compiler/scala/tools/nsc/util/Statistics.scala
- +4 −31 src/reflect/scala/reflect/internal/BaseTypeSeqs.scala
- +101 −47 src/reflect/scala/reflect/internal/Types.scala
- +1 −0 src/reflect/scala/reflect/internal/settings/MutableSettings.scala
- +3 −0 src/reflect/scala/reflect/internal/util/Statistics.scala
- +1 −0 src/reflect/scala/reflect/runtime/Settings.scala
- +38 −0 test/files/pos/t5862.scala
Oops, something went wrong.