That looks good to me.
-Mei
From: Jian-Xin Lai [mailto:laij...@gmail.com]
Sent: Thursday, February 10, 2011 8:14 AM
To: open64-devel
Subject: [Open64-devel] code review for bug fix ##618 and #701
Hi,
Can a gatekeeper review the bug fix for #618 and #701? Thank you very much.
Index: osprey/be/opt/opt_cfg_trans.cxx
===================================================================
--- osprey/be/opt/opt_cfg_trans.cxx (revision 3472)
+++ osprey/be/opt/opt_cfg_trans.cxx (working copy)
@@ -682,6 +682,8 @@
// the following test is to screen out COMPGOTO and XGOTO, ...
if ((branch_sr->Op() == OPC_TRUEBR ||
branch_sr->Op() == OPC_FALSEBR)) {
+ if (bb->Kind() == BB_LOGIF && bb->Ifinfo() != NULL)
+ bb->Set_ifinfo(NULL);
if (branch_sr->Label_number() != goto_bb->Labnam()) {
branch_sr->Set_st(NULL);
branch_sr->Set_label_number(goto_bb->Labnam());
When we create CFG in WOPT, we attach info about the high level SCF, such as
IF/DO_LOOP/DO_WHILE/WHILE_DO/etc, to the BBs in order to re-generate these
kinds of high level SCFs in PreOPT emitter.
For bug 618, it caused by the wrong THEN_BB in the LOG_IF. We already cloned
the THEN BB but the THEN_BB in LOG_IF attached on the IF BB is not cleaned or
updated. When we verify the CFG, we also check the LOG_IF info and trigger this
assertion.
For bug 701, it's similar. The BB contains GOTO becomes unreachable after the
CFG transformation but is still marked as 'needed' due to the wrong LOG_IF
info. Then the bb will be connected to dummy entry but don't have successor.
Since these high level SCF info are not needed by MainOPT emitter. We already
cleaned these info for loops in remove_SCF() in opt_cfg_trans.cxx. But the
LOF_IF is not cleaned. This patch is trying to clean the LOG_IF info. With this
patch, these assertion will not be triggered.
--
Regards,
Lai Jian-Xin
------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel