summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2006-02-14 12:50:40 +0000
committerIulian Dragos <jaguarul@gmail.com>2006-02-14 12:50:40 +0000
commit2197e9485a681f72068c5768263bcd1757664775 (patch)
tree3bc2b962af4209f182925724ec7f089ca91a3bb9 /src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala
parent9392e582986c3d54cde992c3141b52c97f7d6e16 (diff)
downloadscala-2197e9485a681f72068c5768263bcd1757664775.tar.gz
scala-2197e9485a681f72068c5768263bcd1757664775.tar.bz2
scala-2197e9485a681f72068c5768263bcd1757664775.zip
Refactored ICode and added basic inlining capab...
Refactored ICode and added basic inlining capabilities.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala b/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala
index 52611fd4d5..ae326c0714 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/Linearizers.scala
@@ -155,4 +155,13 @@ mixin class Linearizers requires ICodes {
if (!blocks.contains(b))
blocks = b :: blocks;
}
+
+ /** A 'dump' of the blocks in this method, which does not
+ * require any well-formedness of the basic blocks (like
+ * the last instruction being a jump).
+ */
+ class DumpLinearizer extends Linearizer {
+ def linearize(m: IMethod): List[BasicBlock] =
+ m.code.blocks.toList;
+ }
}