OSDN Git Service

ART: Fix issues with SplitBlock
authorMathew Zaleski <mathew.zaleski@intel.com>
Mon, 15 Sep 2014 13:44:14 +0000 (09:44 -0400)
committerMathew Zaleski <mathew.zaleski@intel.com>
Wed, 8 Oct 2014 12:55:47 +0000 (08:55 -0400)
commit33c17021c74b4e1911851ca89d634d15ed811d8d
treee434700666f2a5c04b063614ebf5d74f3d69ca0f
parent41abdb6ec97978df7c6d79abce4efb664c994ce8
ART: Fix issues with SplitBlock

The SplitBlock is a public interface from MIRGraph to be able to create two
blocks from one. This interface can be called not just during the control
flow graph building phase, but later. At that later point, extended instructions
may have already been inserted.

For example, SpecialMethodInliner can insert kMirOpNullCheck and kMirOpNop,
and then another pass tries to split block that contains this. The DCHECK
will fail even though the split is semantically correct.

Signed-off-by: Mathew Zaleski <mathew.zaleski@intel.com>
Conflicts:

compiler/dex/mir_graph.cc

Change-Id: I8bb3551407907909cda444a3379da2eb9331b9ff
compiler/dex/mir_graph.cc