summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/Global.scala
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@epfl.ch>2011-08-19 21:23:21 +0000
committerVlad Ureche <vlad.ureche@epfl.ch>2011-08-19 21:23:21 +0000
commit63f072fe9be341f2acac5609d7657bf2b444ceb6 (patch)
tree132625684725e2407d48c099566d8366d40bc541 /src/compiler/scala/tools/nsc/Global.scala
parent64a2e3074ee5b2cc67776227451ad120746eb156 (diff)
downloadscala-63f072fe9be341f2acac5609d7657bf2b444ceb6.tar.gz
scala-63f072fe9be341f2acac5609d7657bf2b444ceb6.tar.bz2
scala-63f072fe9be341f2acac5609d7657bf2b444ceb6.zip
[recommit] Backend optimization: Inline excepti...
[recommit] Backend optimization: Inline exception handlers. Review by dragos.
Diffstat (limited to 'src/compiler/scala/tools/nsc/Global.scala')
-rw-r--r--src/compiler/scala/tools/nsc/Global.scala12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/Global.scala b/src/compiler/scala/tools/nsc/Global.scala
index 57b5ed45ea..dd067750c8 100644
--- a/src/compiler/scala/tools/nsc/Global.scala
+++ b/src/compiler/scala/tools/nsc/Global.scala
@@ -29,7 +29,7 @@ import transform._
import backend.icode.{ ICodes, GenICode, ICodeCheckers }
import backend.{ ScalaPrimitives, Platform, MSILPlatform, JavaPlatform }
import backend.jvm.GenJVM
-import backend.opt.{ Inliners, ClosureElimination, DeadCodeElimination }
+import backend.opt.{ Inliners, InlineExceptionHandlers, ClosureElimination, DeadCodeElimination }
import backend.icode.analysis._
class Global(var currentSettings: Settings, var reporter: Reporter) extends SymbolTable
@@ -500,10 +500,17 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
val runsRightAfter = None
} with Inliners
+ // phaseName = "inlineExceptionHandlers"
+ object inlineExceptionHandlers extends {
+ val global: Global.this.type = Global.this
+ val runsAfter = List[String]("inliner")
+ val runsRightAfter = None
+ } with InlineExceptionHandlers
+
// phaseName = "closelim"
object closureElimination extends {
val global: Global.this.type = Global.this
- val runsAfter = List[String]("inliner")
+ val runsAfter = List[String]("inlineExceptionHandlers")
val runsRightAfter = None
} with ClosureElimination
@@ -601,6 +608,7 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
cleanup -> "platform-specific cleanups, generate reflective calls",
genicode -> "generate portable intermediate code",
inliner -> "optimization: do inlining",
+ inlineExceptionHandlers -> "optimization: inline exception handlers",
closureElimination -> "optimization: eliminate uncalled closures",
deadCode -> "optimization: eliminate dead code",
terminal -> "The last phase in the compiler chain"