hi, mei Thx very much for your kindly suggestion. Attached please find the new version patch! Please help to review again. Thx again.
2011/9/27 ruifen Shen <shenr...@gmail.com> > hi, mei. > > > 2011/9/23 shenrfen <shenr...@gmail.com> > >> See. Thx.**** >> >> I misunderstand Mei’s meaning.**** >> >> Let me try.**** >> >> ** ** >> >> *From:* Gang Yu [mailto:yugang...@gmail.com] >> *Sent:* Friday, September 23, 2011 2:51 PM >> *To:* shenrfen >> *Cc:* Ye, Mei >> *Subject:* Re: [Open64-devel] Please help to review the patch for [Bug >> 872] ZDL-- Error loop body**** >> >> ** ** >> >> I guess Mei means >> >> if (label_bb == NULL) can be changed to >> >> FmtAssert ((label_bb != NULL), ("Fatal error, ZDLBR without a label!")); >> >> Yes, this is a good idea. We should try. >> >> Regards >> Gang >> >> **** >> >> On Fri, Sep 23, 2011 at 2:31 PM, shenrfen <shenr...@gmail.com> wrote:**** >> >> Hi, mei.**** >> >> Thx very much for your review.**** >> >> But I am Sorry, I do not understand your meaning clearly?**** >> >> + label_bb = Get_bb_from_label(WN_label_number(wn));**** >> >> + if (label_bb == NULL) {**** >> >> + label_bb = Create_bb();**** >> >> + // the _current_bb needs to be in the label map**** >> >> + Append_label_map(WN_label_number(wn), label_bb);**** >> >> + }**** >> >> **** >> >> **** >> >> *From:* Ye, Mei [mailto:mei...@amd.com] >> *Sent:* Friday, September 23, 2011 1:56 AM >> *To:* shenrfen >> *Subject:* RE: [Open64-devel] Please help to review the patch for [Bug >> 872] ZDL-- Error loop body**** >> >> **** >> >> If OPR_ZDLBR is a loop back-edge branch, why haven’t the branch target >> label been created?**** >> >> i.e., is the code “if (label_bb == NULL)” necessary? **** >> >> **** >> >> -Mei**** >> >> **** >> >> *From:* shenrfen [mailto:shenr...@gmail.com] >> *Sent:* Wednesday, September 21, 2011 7:29 PM >> *To:* Ye, Mei >> *Subject:* RE: [Open64-devel] Please help to review the patch for [Bug >> 872] ZDL-- Error loop body**** >> >> **** >> >> Hi, mei.**** >> >> OPR_ZDLBR represents a zero-delay-loop (hardware implement). It is located >> at the end of loop body.**** >> >> Attached Please find one test case and the zdl-convert trace. **** >> >> Detail Please see –r3735 **** >> >> **** >> >> A new implementation for the open64's support for DSP Zero-Delay-Loop(ZDL) >> feature. This ZDL contribution is a co-operatio**** >> >> nal approach of global scalar optimizer WOPT and the Code Generation >> component CG. The common ZDL features, i.e, the loop **** >> >> counting mechanism hidden and bottom loop condition abstracted are >> implemented in WOPT with minimized changes while keepin**** >> >> g the maximum optimizing result. A pseudo branch op method is introduced >> to expand ZDL WHIRL operator and delay the ZDL ha**** >> >> rdware instruction generation to the very last phase of CG loop >> optimization. This lazy implementation helps keeping the c**** >> >> ompatibility with other CG loop optimizations to produce the most optimal >> code. With the new ZDL implementation, open64 pr**** >> >> ovides the equal expressibility to gcc's doloop_begin, doloop_end and >> decrement_and_branch_until_zero patterns.**** >> >> **** >> >> *From:* Ye, Mei [mailto:mei...@amd.com] >> *Sent:* Thursday, September 22, 2011 1:35 AM >> *To:* shenrfen >> *Subject:* RE: [Open64-devel] Please help to review the patch for [Bug >> 872] ZDL-- Error loop body**** >> >> **** >> >> Hi ruifen**** >> >> **** >> >> What does OPR_ZDLBR do?**** >> >> **** >> >> -Mei**** >> >> **** >> >> **** >> >> *From:* shenrfen [mailto:shenr...@gmail.com] >> *Sent:* Wednesday, September 21, 2011 1:40 AM >> *To:* open64-devel@lists.sourceforge.net >> *Subject:* [Open64-devel] Please help to review the patch for [Bug 872] >> ZDL-- Error loop body**** >> >> **** >> >> Please open the followed url to find the Details. Thx very much.**** >> >> https://bugs.open64.net/show_bug.cgi?id=872 **** >> >> This patch has gone through SL’s regressiontest.**** >> >> **** >> >> Index: osprey/be/opt/opt_cfg.cxx**** >> >> ===================================================================**** >> >> --- osprey/be/opt/opt_cfg.cxx (revision 3739)**** >> >> +++ osprey/be/opt/opt_cfg.cxx (working copy)**** >> >> @@ -3100,7 +3100,23 @@**** >> >> *ends_bb = END_BREAK;**** >> >> break;**** >> >> **** >> >> - case OPR_FALSEBR:**** >> >> + case OPR_ZDLBR:**** >> >> + label_bb = Get_bb_from_label(WN_label_number(wn));**** >> >> + if (label_bb == NULL) {**** >> >> + label_bb = Create_bb();**** >> >> + // the _current_bb needs to be in the label map**** >> >> + Append_label_map(WN_label_number(wn), label_bb);**** >> >> + }**** >> >> +**** >> >> + Connect_predsucc(_current_bb, label_bb);**** >> >> + Append_wn_in(_current_bb, wn);**** >> >> + _current_bb->Set_kind(BB_LOGIF);**** >> >> +**** >> >> + if (ends_bb)**** >> >> + *ends_bb = END_FALLTHRU;**** >> >> + break;**** >> >> +**** >> >> + case OPR_FALSEBR:**** >> >> case OPR_TRUEBR:**** >> >> label_bb = Get_bb_from_label( WN_label_number(wn) );**** >> >> if (label_bb == NULL) {**** >> >> **** >> >> **** >> >> **** >> >> -----Original Message----- >> From: bugzilla-dae...@open64.net [mailto:bugzilla-dae...@open64.net] >> Sent: Wednesday, September 21, 2011 10:49 AM >> To: shenr...@gmail.com >> Subject: [Bug 872] ZDL-- Error loop body**** >> >> **** >> >> https://bugs.open64.net/show_bug.cgi?id=872**** >> >> **** >> >> Gang, Yu <yugang...@gmail.com> changed:**** >> >> **** >> >> What |Removed |Added**** >> >> >> ---------------------------------------------------------------------------- >> **** >> >> CC| |yugang...@gmail.com**** >> >> **** >> >> --- Comment #2 from Gang, Yu <yugang...@gmail.com> 2011-09-20 22:49:08 >> EDT ---**** >> >> I have an investigation for this bug under ITANIUM(a potential ZDL target) >> **** >> >> platform. Yes, it does also exists in ITANIUM.**** >> >> **** >> >> a cutted case:**** >> >> **** >> >> int main()**** >> >> {**** >> >> short var_out;**** >> >> int iteration;**** >> >> int L_num = 8000;**** >> >> int L_denom = 4000;**** >> >> **** >> >> for(iteration=0;iteration<16;iteration++)**** >> >> {**** >> >> L_num = L_num - 4000;**** >> >> }**** >> >> **** >> >> printf("L_num: %x\n", L_num);**** >> >> **** >> >> }**** >> >> **** >> >> the command:**** >> >> $TOOLROOT/bin/opencc -S -show -keep -WOPT:zdl zrf.c -Wb,-tt25:0x10000**** >> >> **** >> >> the dump shows:**** >> >> at RVI_phase2:**** >> >> **** >> >> ---- BB3 (RPO 3) (Lab2050) (GOTO) (e) LINE 0 (call) (rid_id:0) (flag:87)* >> *** >> >> Preds:2**** >> >> Succs:4**** >> >> Fallthrough: 4**** >> >> Next : BB4**** >> >> Prev : BB2**** >> >> dom_dfs_id(0), dom_dfs_last(0)**** >> >> pdom_dfs_id(0), pdom_dfs_last(0)**** >> >> LABEL L2050 0 {line: 0/0} {freq: 0, ln: 0, col: 0}**** >> >> LOOP_INFO 0 1 1**** >> >> U8U8LDID 264 <st 1281> T<9,.predef_U8,4>**** >> >> I8INTCONST 16 (0x10)**** >> >> END_LOOP_INFO**** >> >> COMMENT <st 3586> # {line: 0/0} {freq: 0, ln: 0, col: 0}**** >> >> COMMENT <st 3842> # {line: 1/8} {freq: 0, ln: 8, col: 0}**** >> >> U8U8LDID 265 <st 1281> T<9,.predef_U8,4>**** >> >> I8INTCONST -4000 (0xfffffffffffff060)**** >> >> I8ADD**** >> >> U8STID 265 <st 1281> T<9,.predef_U8,4> {line: 1/10} {freq: 0, ln: 10, col: >> 0}**** >> >> COMMENT <st 4098> # {line: 1/8} {freq: 0, ln: 8, col: 0}**** >> >> ZDLBR L2050 {line: 0/0} {freq: 0, ln: 0, col: 0}**** >> >> COMMENT <st 4354> # {line: 0/0} {freq: 0, ln: 0, col: 0}**** >> >> COMMENT <st 4610> # {line: 1/8} {freq: 0, ln: 8, col: 0}**** >> >> U8LDA 0 <st 5633> T<33,anon_ptr.,8>**** >> >> U8PARM 2 T<29,anon_ptr.,8> # by_value**** >> >> U8U8LDID 265 <st 1281> T<9,.predef_U8,4>**** >> >> I4PARM 2 T<4,.predef_I4,4> # by_value**** >> >> VCALL 126 <st 5377> # flags 0x7e {line: 1/13} {freq: 0, ln: 13, col: 0}** >> ** >> >> **** >> >> ZDLBR does not split the BB, so it is a bug**** >> >> **** >> >> -- **** >> >> Configure bugmail: https://bugs.open64.net/userprefs.cgi?tab=email**** >> >> ------- You are receiving this mail because: -------**** >> >> You reported the bug.**** >> >> ** ** >> > > > > -- > Best Regards. > > Shen Ruifen > > tel: 010-51266989-226 > > -- Best Regards. Shen Ruifen tel: 010-51266989-226
bug872.patch
Description: Binary data
------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel