diff options
| author | 2014-08-12 09:34:54 +0900 | |
|---|---|---|
| committer | 2014-08-12 21:01:06 +0900 | |
| commit | f1770fdeb0911d11489b7d495ce31420ac0cdc61 (patch) | |
| tree | e8c7eae2bf1307076c853cd90c966aeeac5e0277 | |
| parent | e95df5fa957ca294d6b5048e7d01318a11f2800e (diff) | |
Fix missing operation in CombineBlocks
explicit throw, conditional branch flags also need to be moved.
There are no quick compiler bugs before this CL.
So regression test is not necessary.
Change-Id: I5f7c0f261fff5f7a46b32763096ab4fe85b2c0c0
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
| -rw-r--r-- | compiler/dex/mir_optimization.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/dex/mir_optimization.cc b/compiler/dex/mir_optimization.cc index 23ceb56d66..c7dd85c9c2 100644 --- a/compiler/dex/mir_optimization.cc +++ b/compiler/dex/mir_optimization.cc @@ -692,10 +692,13 @@ void MIRGraph::CombineBlocks(struct BasicBlock* bb) { // Include the rest of the instructions bb->last_mir_insn = bb_next->last_mir_insn; /* - * If lower-half of pair of blocks to combine contained a return, move the flag - * to the newly combined block. + * If lower-half of pair of blocks to combine contained + * a return or a conditional branch or an explicit throw, + * move the flag to the newly combined block. */ bb->terminated_by_return = bb_next->terminated_by_return; + bb->conditional_branch = bb_next->conditional_branch; + bb->explicit_throw = bb_next->explicit_throw; /* * NOTE: we aren't updating all dataflow info here. Should either make sure this pass |