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