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

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

Reply via email to