your example should infinite loop. Pls double check before we further
discuss this
Sun
On Tue, Nov 29, 2011 at 8:41 AM, Yiran Wang <yiran.w...@gmail.com> wrote:
> Hi All,
>
> Could a gatekeeper review this patch?
>
> The test case is as following, and the bug is triggered, when compiling it
> with -O2.
>
> #include <string.h>
>
> struct x{
> int y;
> int z;
> };
>
> int foo()
> {
> struct x xyz,abc;
> int i;
> memset(&xyz,0,sizeof(xyz));
> i = 1;
> while( i < 0 )
> {
> abc.y += xyz.z;
> xyz.z += 1;
> i+=i;
> }
> memcpy(&abc,&xyz,sizeof(xyz));
> return abc.y ;
> }
>
> The issue is that after WOPT remove the while loop, it renames SSA and
> connect the MSTORE and MLOAD lowered from memset and memcpy respectively.
> It would then try to copy propagate
>
> LDC 0
> LDA ...
> LDC 8
> MSTORE
>
> to
>
> LDA ...
> LDC 8
> MLOAD
>
> And, it fails to make a CVT op of type I4 and M.
>
> As WOPT is not doing copy propagation for MLOAD, so we just abandon the
> opportunity as a fix.
> It should be noted that, the DEF is passing the "Propagatable" test, as it
> is LDC I4, while usual DEF of an MLOAD would be MLOAD.
>
> The patch is as following:
> Index: opt_prop.cxx
> ===================================================================
> --- opt_prop.cxx (revision 3827)
> +++ opt_prop.cxx (working copy)
> @@ -1307,6 +1307,16 @@
> if (prop == NOT_PROPAGATABLE)
> return NULL;
>
> + // MLOAD may be defined by a MSTORE as following
> + // LDC 0
> + // LDA
> + // LDC
> + // MSTORE
> + // The definition would pass Propagatable test, but we are not going
> + // to propagate it.
> + if (x->Opr() == OPR_MLOAD)
> + return NULL;
> +
> x->DecUsecnt();
> if (icopy_phase)
> Htable()->Inc_inputprops();
>
> Best Regards,
> Yiran
>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure
> contains a definitive record of customers, application performance,
> security threats, fraudulent activity, and more. Splunk takes this
> data and makes sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-novd2d
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel