diff options
| author | 2012-12-31 16:05:53 -0800 | |
|---|---|---|
| committer | 2013-01-03 06:17:11 -0800 | |
| commit | 2502e004d93734a99bdfeab811b3c5ae06f45bec (patch) | |
| tree | 1f1ef0f89464d4a2d5477fe026866cc684c7ca1b /src/compiler/frontend.cc | |
| parent | 2d76b041be770102fc912effc398e629a18180d2 (diff) | |
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
Diffstat (limited to 'src/compiler/frontend.cc')
| -rw-r--r-- | src/compiler/frontend.cc | 5 |
1 files changed, 5 insertions, 0 deletions
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 |