summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2008-04-02 14:22:37 +0000
committerIulian Dragos <jaguarul@gmail.com>2008-04-02 14:22:37 +0000
commita2ee2a591347e2abc1552b438b8010a9463d21e1 (patch)
tree0eeb6a079c9f8c1a7e2eadeb0426d1ef0a304aa1
parent2facac90e8c3cae5cbe29a55835c69847d270a40 (diff)
downloadscala-a2ee2a591347e2abc1552b438b8010a9463d21e1.tar.gz
scala-a2ee2a591347e2abc1552b438b8010a9463d21e1.tar.bz2
scala-a2ee2a591347e2abc1552b438b8010a9463d21e1.zip
Fixed useless assignment when defining dummy 't...
Fixed useless assignment when defining dummy 'this' variable (introduced by tail call elimination). Should improve GC performance (see ticket $692).
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/GenICode.scala4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
index 0797a8c723..41961d5a0c 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala
@@ -400,6 +400,10 @@ abstract class GenICode extends SubComponent {
ctx.bb.close
genLoad(rhs, ctx1, expectedType /*toTypeKind(tree.symbol.info.resultType)*/)
+ case ValDef(_, nme.THIS, _, _) =>
+ if (settings.debug.value) log("skipping trivial assign to _$this: " + tree)
+ ctx
+
case ValDef(_, _, _, rhs) =>
val sym = tree.symbol
val local = ctx.method.addLocal(new Local(sym, toTypeKind(sym.info), false))