From 0967a25d1482d8f7b4a26c5926263e7ffa63189f Mon Sep 17 00:00:00 2001 From: buzbee Date: Fri, 14 Sep 2012 10:43:54 -0700 Subject: Quick compiler code layout Minor tweaks to the code layout for the Quick compiler. Repair damage caused by bitcode conversion & additionally add a new optimization pass to move unlikely targets to the end of the code (flipping branch conditons if necessary). For now, this will only be applied to target blocks which do an explicit throw and are dominated by a block terminated by a conditional branch. Later, we might want to generalize this capability to enable profile guidance. Also, tweaked the basic block combine pass to include blocks terminated by array access operations whose null check and range checks have been eliminated. With this CL, the run-time performance difference between art-buzbee and art-Quick is in the noise. Change-Id: Iaf9921220eb6cb33c2418c76e7a6b7b31472dace --- src/compiler/Dataflow.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/compiler/Dataflow.h') diff --git a/src/compiler/Dataflow.h b/src/compiler/Dataflow.h index e2d5a4c50a..8e99e4dffe 100644 --- a/src/compiler/Dataflow.h +++ b/src/compiler/Dataflow.h @@ -168,6 +168,8 @@ void oatDumpCheckStats(CompilationUnit*); void oatMethodBasicBlockCombine(CompilationUnit*); +void oatMethodCodeLayout(CompilationUnit*); + void oatMethodBasicBlockOptimization(CompilationUnit*); } // namespace art -- cgit v1.2.3-59-g8ed1b