I'm not sure about other platforms. I'll make a small case and people can
verify it on other platforms.
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