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