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
------------------------------------------------------------------------------
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