Hi, Can a gate keeper help review this patch For volatile field in a struct, the volatile flag is not set correctly in expanding WHIRL to OPs. The CG will reorder the store because it's not volatile. This patch will return the right volatile flag for MSTORE and ISTORE.
Index: osprey/common/com/wn_util.h =================================================================== --- osprey/common/com/wn_util.h (revision 3700) +++ osprey/common/com/wn_util.h (working copy) @@ -453,7 +453,8 @@ OPCODE_operator(opc) == OPR_MSTORE) { TY_IDX pointed = TY_pointed (Ty_Table[WN_ty (wn)]); DevAssert(pointed, ("TY_pointed of ISTORE/MSTORE type is NULL")); - return TY_is_volatile(pointed); + return TY_is_volatile(pointed) || + TY_is_volatile(WN_object_ty(wn)); } else { return TY_is_volatile(WN_ty(wn)) || TY_is_volatile(WN_object_ty(wn)) || -- yongchong ------------------------------------------------------------------------------ BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel