diff options
author | Paul Phillips <paulp@improving.org> | 2013-04-17 15:38:49 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-04-17 15:38:49 -0700 |
commit | 1ce4ecd800d2db38d73de103d09060e871520369 (patch) | |
tree | f52662350c571d9552e9f60f40f097d14eb3baf3 /src/interactive | |
parent | 86651c1205de9d901a9f0a0214888ac7c4724b81 (diff) | |
download | scala-1ce4ecd800d2db38d73de103d09060e871520369.tar.gz scala-1ce4ecd800d2db38d73de103d09060e871520369.tar.bz2 scala-1ce4ecd800d2db38d73de103d09060e871520369.zip |
Rewrite TailCalls for performance and immutability.
While logging symbols created after typer, I discovered that
TailCalls was far and away the largest creator. It turns out
this was due to a bug where thousands of labels were eagerly
created during tail call analysis, even if the method weren't
tail recursive and no label would ever be required.
This commit shaves 10% off the total number of method symbol
creations (compiling quick.lib drops from 88K to 80K.)
Diffstat (limited to 'src/interactive')
0 files changed, 0 insertions, 0 deletions