I update to rev3499, no assertion thrown out with SL target.
Gang
On Mon, Mar 7, 2011 at 9:50 AM, Jian-Xin Lai <laij...@gmail.com> wrote:

> Hi,
>
> Here is a case:
> /* case mload.cxx begin */
> void error_exit() {
> }
> class A {};
> typedef void (A::*pmf)();
> class B {
> public:
>   operator pmf() {}
> };
> int main() {
>   int local_flag;
>   B b;
>   if (b) local_flag = 1;
>   if (!local_flag) error_exit();
> }
> /* case mload.cxx end */
>
> There will be an assertion on IA-64 with rev 3499 debug compiler:
> ### Compiler Error in file 0.min.ii (user routine 'main') during
> Code_Expansion phase:
>
> ### Unimplemented function Expand_Expr: MLOAD/MSTORE
>
> Can someone verify this case on SL/MIPS/NVISA?
>
>  2011/3/6 Sun Chan <sun.c...@gmail.com>
>
>> 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
>> >
>> >
>>
>
>
>
> --
> 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