diff options
author | 2016-03-02 16:48:20 +0000 | |
---|---|---|
committer | 2016-04-04 11:21:30 +0100 | |
commit | e3ff7b293be2a6791fe9d135d660c0cffe4bd73f (patch) | |
tree | d578d27cb78e6d2caef683cd8ac94c9a9752b192 /compiler/optimizing/gvn_test.cc | |
parent | 86ea7eeabe30c98bbe1651a51d03cb89776724e7 (diff) |
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
Diffstat (limited to 'compiler/optimizing/gvn_test.cc')
-rw-r--r-- | compiler/optimizing/gvn_test.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/optimizing/gvn_test.cc b/compiler/optimizing/gvn_test.cc index 56dc08826b..6abf00e21a 100644 --- a/compiler/optimizing/gvn_test.cc +++ b/compiler/optimizing/gvn_test.cc @@ -357,8 +357,10 @@ TEST_F(GVNTest, LoopSideEffects) { Primitive::kPrimBoolean); entry->AddInstruction(parameter); entry->AddInstruction(new (&allocator) HGoto()); + outer_loop_header->AddInstruction(new (&allocator) HSuspendCheck()); outer_loop_header->AddInstruction(new (&allocator) HIf(parameter)); outer_loop_body->AddInstruction(new (&allocator) HGoto()); + inner_loop_header->AddInstruction(new (&allocator) HSuspendCheck()); inner_loop_header->AddInstruction(new (&allocator) HIf(parameter)); inner_loop_body->AddInstruction(new (&allocator) HGoto()); inner_loop_exit->AddInstruction(new (&allocator) HGoto()); |