summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-12-21 19:31:28 +0000
committerPaul Phillips <paulp@improving.org>2010-12-21 19:31:28 +0000
commit5bc2fc576949f03980ddd092b303b4484ab3172c (patch)
treec72cad9532854ccf436c72cfabfa0bdc0fc974fa /src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala
parentc9ae821b7702169147fe324eb160710623c16280 (diff)
downloadscala-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.scala22
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) =>