From 2502e004d93734a99bdfeab811b3c5ae06f45bec Mon Sep 17 00:00:00 2001 From: buzbee Date: Mon, 31 Dec 2012 16:05:53 -0800 Subject: Basic block optimization refactoring Various optimization improvements for the common frontend. Before applying basic block optimizations, split the graph into extended basic blocks. Replace existing pattern-match range-check elimination with a scheme based on local value numbering (which could also serve as the basis for some CSE if the existing, but so-far untested, common frontend temp register mechanism works as designed). For the framework, this CL improves null check elimination from 90.74% (statically) to 91.24% removed, and range check elimination from 3.45% to 8.17%. Change-Id: Ie1ce730cfe12a12fef665a30fe3814bad1993895 --- src/compiler/frontend.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/compiler/frontend.cc') diff --git a/src/compiler/frontend.cc b/src/compiler/frontend.cc index 9d30b6ad0b..e00fb68621 100644 --- a/src/compiler/frontend.cc +++ b/src/compiler/frontend.cc @@ -1124,6 +1124,11 @@ static CompiledMethod* CompileMethod(Compiler& compiler, /* Allocate Registers using simple local allocation scheme */ SimpleRegAlloc(cu.get()); + if (cu->enable_debug & (1 << kDebugDumpCFG)) { + DumpCFG(cu.get(), "/sdcard/7_post_ralloc_cfg/", true); + } + + /* Go the LLVM path? */ if (cu->gen_bitcode) { // MIR->Bitcode -- cgit v1.2.3-59-g8ed1b