summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Junmo Park <junmoz.park@samsung.com> 2014-08-12 09:34:54 +0900
committer Junmo Park <junmoz.park@samsung.com> 2014-08-12 21:01:06 +0900
commitf1770fdeb0911d11489b7d495ce31420ac0cdc61 (patch)
treee8c7eae2bf1307076c853cd90c966aeeac5e0277
parente95df5fa957ca294d6b5048e7d01318a11f2800e (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.cc7
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