OSDN Git Service

Refactor HGraphBuilder and SsaBuilder to remove HLocals
authorDavid Brazdil <dbrazdil@google.com>
Wed, 2 Mar 2016 16:48:20 +0000 (16:48 +0000)
committerDavid Brazdil <dbrazdil@google.com>
Mon, 4 Apr 2016 10:21:30 +0000 (11:21 +0100)
commite3ff7b293be2a6791fe9d135d660c0cffe4bd73f
treed578d27cb78e6d2caef683cd8ac94c9a9752b192
parent86ea7eeabe30c98bbe1651a51d03cb89776724e7
Refactor HGraphBuilder and SsaBuilder to remove HLocals

This patch merges the instruction-building phases from HGraphBuilder
and SsaBuilder into a single HInstructionBuilder class. As a result,
it is not necessary to generate HLocal, HLoadLocal and HStoreLocal
instructions any more, as the builder produces SSA form directly.

Saves 5-15% of arena-allocated memory (see bug for more data):
  GMS      20.46MB  =>  19.26MB  (-5.86%)
  Maps     24.12MB  =>  21.47MB  (-10.98%)
  YouTube  28.60MB  =>  26.01MB  (-9.05%)

Bug: 27894376
Change-Id: Iefe28d40600c169c5d306fd2c77034ae19476d90
34 files changed:
compiler/Android.mk
compiler/optimizing/builder.cc
compiler/optimizing/builder.h
compiler/optimizing/code_generator.cc
compiler/optimizing/code_generator.h
compiler/optimizing/code_generator_arm.cc
compiler/optimizing/code_generator_arm.h
compiler/optimizing/code_generator_arm64.cc
compiler/optimizing/code_generator_arm64.h
compiler/optimizing/code_generator_mips.cc
compiler/optimizing/code_generator_mips.h
compiler/optimizing/code_generator_mips64.cc
compiler/optimizing/code_generator_mips64.h
compiler/optimizing/code_generator_x86.cc
compiler/optimizing/code_generator_x86.h
compiler/optimizing/code_generator_x86_64.cc
compiler/optimizing/code_generator_x86_64.h
compiler/optimizing/constant_folding_test.cc
compiler/optimizing/dead_code_elimination_test.cc
compiler/optimizing/gvn_test.cc
compiler/optimizing/inliner.cc
compiler/optimizing/instruction_builder.cc [new file with mode: 0644]
compiler/optimizing/instruction_builder.h [new file with mode: 0644]
compiler/optimizing/live_ranges_test.cc
compiler/optimizing/liveness_test.cc
compiler/optimizing/nodes.cc
compiler/optimizing/nodes.h
compiler/optimizing/optimizing_compiler.cc
compiler/optimizing/optimizing_unit_test.h
compiler/optimizing/pretty_printer_test.cc
compiler/optimizing/ssa_builder.cc
compiler/optimizing/ssa_builder.h
compiler/optimizing/ssa_test.cc
test/510-checker-try-catch/smali/Builder.smali