ok. TARGET_SL is fine too, but it is immaterial
Sun

On Mon, Mar 7, 2011 at 3:50 PM, Agarwal, Ajit <ajit.agar...@amd.com> wrote:
> Hi Sun:
>
> I am planning to put the code under x86_64 and along with the
> Fix for 739 and 723.
>
> Please let me know if its okay. Could you please review the
> Changes for bug 739 and 723.
>
> Thanks & Regards
> Ajit
>
> -----Original Message-----
> From: Sun Chan [mailto:sun.c...@gmail.com]
> Sent: Sunday, March 06, 2011 12:02 PM
> To: Jian-Xin Lai
> Cc: Agarwal, Ajit; Open64-devel@lists.sourceforge.net
> Subject: Re: [Open64-devel] Code review for bug Id 732
>
> or screen out IA64?
> Sun
>
> On Sun, Mar 6, 2011 at 2:22 PM, Jian-Xin Lai <laij...@gmail.com> wrote:
>> This changes in wgen_expr.cxx caused a regression on IA-64. There will be an
>> assertion during CG expansion phase:
>> ### Compiler Error in file case1.cxx (user routine 'main') during
>> Code_Expansion phase:
>> ### Unimplemented function Expand_Expr: MLOAD/MSTORE
>>
>> I'd like to only apply this piece of code on X8664. Any suggestions?
>>
>> 2011/2/28 Agarwal, Ajit <ajit.agar...@amd.com>
>>>
>>> Hello All:
>>>
>>>
>>>
>>> Gatekeeper could you please review the fix for bug Id 732. The changes are
>>> made in wgen_expr.cxx
>>>
>>> And wn_lower.cxx.
>>>
>>>
>>>
>>> In wgen_expr.cxx the  copy the -1 preg to a temp area is not done when for
>>> GS_CALL_EXPR and the
>>>
>>> Passed is GS_ADDR_EXPR with operand as  GS_VAR_DECL. The MTYPE_M is not
>>> supported on wn_lower.cxx
>>>
>>> Added the changes for that.
>>>
>>>
>>>
>>> Following files are modified.
>>>
>>> Osprey/wgen/wgen_expr.cxx
>>>
>>> Osprey/be/com/wn_lower.cxx
>>>
>>>
>>>
>>> Index: osprey/wgen/wgen_expr.cxx
>>>
>>> ===================================================================
>>>
>>> --- osprey/wgen/wgen_expr.cxx   (revision 3495)
>>>
>>> +++ osprey/wgen/wgen_expr.cxx   (working copy)
>>>
>>> @@ -7899,6 +7899,7 @@
>>>
>>>      case GS_AGGR_INIT_EXPR:
>>>
>>>      case GS_CALL_EXPR:
>>>
>>>        {
>>>
>>> +        BOOL is_gs_addr_arg = FALSE;
>>>
>>>         gs_t arglist = gs_tree_operand (exp, 1);
>>>
>>>          TYPE_ID ret_mtype;
>>>
>>>          WN *call_wn;
>>>
>>> @@ -9840,11 +9841,24 @@
>>>
>>>               TY_mtype(TY_pointed(ty_idx)) == MTYPE_V) /* pointer to void
>>> */
>>>
>>>             ty_idx = nop_ty_idx;
>>>
>>>  #endif
>>>
>>> +          if((ret_mtype == MTYPE_M) && (Is_Target_64bit()))
>>>
>>> +          {
>>>
>>> +            for (list = gs_tree_operand (exp, 1); list;
>>>
>>> +                 list = gs_tree_chain (list)) {
>>>
>>> +              if(gs_tree_code(gs_tree_value (list)) == GS_ADDR_EXPR)
>>>
>>> +              {
>>>
>>> +                if (gs_tree_code(
>>>
>>> +                    gs_tree_operand(gs_tree_value (list),0)) ==
>>> GS_VAR_DECL )
>>>
>>> +                  is_gs_addr_arg = TRUE;
>>>
>>> +              }
>>>
>>> +           }
>>>
>>> +         }
>>>
>>>           wn1 = WN_Ldid (ret_mtype, -1, Return_Val_Preg, ty_idx);
>>>
>>>
>>>
>>> -         if (ret_mtype == MTYPE_M) { // copy the -1 preg to a temp area
>>>
>>> +         if (ret_mtype == MTYPE_M && (!is_gs_addr_arg)) { // copy the -1
>>> preg to a temp area
>>>
>>>
>>>
>>>             TY_IDX ret_ty_idx = ty_idx;
>>>
>>> +            is_gs_addr_arg = FALSE;
>>>
>>>  #ifndef KEY
>>>
>>>  // bug 3735: the compiler cannot arbitrarily change the alignment of
>>>
>>>  // individual structures
>>>
>>>
>>>
>>> Index: osprey/be/com/wn_lower.cxx
>>>
>>> ===================================================================
>>>
>>> --- osprey/be/com/wn_lower.cxx  (revision 3495)
>>>
>>> +++ osprey/be/com/wn_lower.cxx  (working copy)
>>>
>>> @@ -4855,6 +4855,13 @@
>>>
>>>  #endif // TARG_X8664 || VECTOR_MTYPES
>>>
>>>
>>>
>>>      case MTYPE_M:
>>>
>>> +#if defined(TARG_X8664)
>>>
>>> +      WN_st_idx(tree) = ST_st_idx(MTYPE_To_PREG(MTYPE_U8));
>>>
>>> +      WN_load_offset(tree) = First_Int_Preg_Return_Offset;
>>>
>>> +      WN_set_rtype(tree, MTYPE_U8);
>>>
>>> +      WN_set_desc(tree, MTYPE_U8);
>>>
>>> +      return tree;
>>>
>>> +#endif
>>>
>>>        Fail_FmtAssertion ("MLDID of Return_Val_Preg not allowed in middle"
>>>
>>>                          " of expression");
>>>
>>>        /*NOTREACHED*/
>>>
>>> @@ -11391,7 +11398,7 @@
>>>
>>>                                                           : parm;
>>>
>>>
>>>
>>>      ploc = Get_Output_Parameter_Location(TY_Of_Parameter(parm));
>>>
>>> -    if (MTYPE_is_m(parmType))
>>>
>>> +    if (MTYPE_is_m(parmType)&&(WN_operator(actual) != OPR_LDID))
>>>
>>>      {
>>>
>>>       /*
>>>
>>>        * structure parameter
>>>
>>>
>>>
>>> Thanks & Regards
>>>
>>> Ajit
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Free Software Download: Index, Search & Analyze Logs and other IT data in
>>> Real-Time with Splunk. Collect, index and harness all the fast moving IT
>>> data
>>> generated by your applications, servers and devices whether physical,
>>> virtual
>>> or in the cloud. Deliver compliance at lower cost and gain new business
>>> insights. http://p.sf.net/sfu/splunk-dev2dev
>>> _______________________________________________
>>> Open64-devel mailing list
>>> Open64-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>>
>>
>>
>>
>> --
>> Regards,
>> Lai Jian-Xin
>>
>> ------------------------------------------------------------------------------
>> What You Don't Know About Data Connectivity CAN Hurt You
>> This paper provides an overview of data connectivity, details
>> its effect on application quality, and explores various alternative
>> solutions. http://p.sf.net/sfu/progress-d2d
>> _______________________________________________
>> Open64-devel mailing list
>> Open64-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>
>>
>
>
>

------------------------------------------------------------------------------
What You Don't Know About Data Connectivity CAN Hurt You
This paper provides an overview of data connectivity, details
its effect on application quality, and explores various alternative
solutions. http://p.sf.net/sfu/progress-d2d
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to