diff options
author | Paul Phillips <paulp@improving.org> | 2010-12-21 19:31:28 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-12-21 19:31:28 +0000 |
commit | 5bc2fc576949f03980ddd092b303b4484ab3172c (patch) | |
tree | c72cad9532854ccf436c72cfabfa0bdc0fc974fa /src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala | |
parent | c9ae821b7702169147fe324eb160710623c16280 (diff) | |
download | scala-5bc2fc576949f03980ddd092b303b4484ab3172c.tar.gz scala-5bc2fc576949f03980ddd092b303b4484ab3172c.tar.bz2 scala-5bc2fc576949f03980ddd092b303b4484ab3172c.zip |
More elimination of avoidable calls to List#len...
More elimination of avoidable calls to List#length. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala index 3d7219923d..43ab35b83e 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala @@ -355,13 +355,11 @@ abstract class CopyPropagation { } case BOX(tpe) => - val top = out.stack.head - top match { - case Deref(loc) => - out.stack = Boxed(loc) :: out.stack.tail - case _ => - out.stack = Unknown :: out.stack.drop(1) + val top = out.stack.head match { + case Deref(loc) => Boxed(loc) + case _ => Unknown } + out.stack = top :: out.stack.tail case UNBOX(tpe) => val top = out.stack.head @@ -371,14 +369,10 @@ abstract class CopyPropagation { } case NEW(kind) => - val v1 = - kind match { - case REFERENCE(cls) => - Record(cls, new HashMap[Symbol, Value]) - // bq: changed from _ to null, otherwise would be unreachable - case null => - Unknown - } + val v1 = kind match { + case REFERENCE(cls) => Record(cls, new HashMap[Symbol, Value]) + case _ => Unknown + } out.stack = v1 :: out.stack case CREATE_ARRAY(elem, dims) => |