Re: [PATCH, CHKP] Don't try to optimize bounds returned by strchr

2014-12-08 Thread Ilya Enkovich
2014-12-06 1:55 GMT+03:00 Jeff Law l...@redhat.com:
 On 12/02/14 06:40, Ilya Enkovich wrote:

 Hi,

 For strchr calls bounds of the first argument are considered as returned
 which is wrong because NULL may be returned.  This patch fixes that.
 Bootstrapped and tested on x86_64-unknown-linux-gnu.  OK for trunk?

 Thanks,
 Ilya
 --
 2014-12-02  Ilya Enkovich  ilya.enkov...@intel.com

 * tree-chkp.c (chkp_build_returned_bound): Don't predict
 return bounds for strchr calls.

 OK.

 Do you have a testcase you could add to the suite?

I cannot add a nice test for bounds returned by strchr for NULL until
it is wrapped (which will happen eventually).

Thanks,
Ilya



 Jeff



Re: [PATCH, CHKP] Don't try to optimize bounds returned by strchr

2014-12-05 Thread Jeff Law

On 12/02/14 06:40, Ilya Enkovich wrote:

Hi,

For strchr calls bounds of the first argument are considered as returned which 
is wrong because NULL may be returned.  This patch fixes that.  Bootstrapped 
and tested on x86_64-unknown-linux-gnu.  OK for trunk?

Thanks,
Ilya
--
2014-12-02  Ilya Enkovich  ilya.enkov...@intel.com

* tree-chkp.c (chkp_build_returned_bound): Don't predict
return bounds for strchr calls.

OK.

Do you have a testcase you could add to the suite?

Jeff



[PATCH, CHKP] Don't try to optimize bounds returned by strchr

2014-12-02 Thread Ilya Enkovich
Hi,

For strchr calls bounds of the first argument are considered as returned which 
is wrong because NULL may be returned.  This patch fixes that.  Bootstrapped 
and tested on x86_64-unknown-linux-gnu.  OK for trunk?

Thanks,
Ilya
--
2014-12-02  Ilya Enkovich  ilya.enkov...@intel.com

* tree-chkp.c (chkp_build_returned_bound): Don't predict
return bounds for strchr calls.


diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index f7def51..1d91aa6 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -2163,8 +2163,7 @@ chkp_build_returned_bound (gcall *call)
 }
   /* Do not use retbnd when returned bounds are equal to some
  of passed bounds.  */
-  else if ((gimple_call_return_flags (call)  ERF_RETURNS_ARG)
-  || gimple_call_builtin_p (call, BUILT_IN_STRCHR))
+  else if (gimple_call_return_flags (call)  ERF_RETURNS_ARG)
 {
   gimple_stmt_iterator iter = gsi_for_stmt (call);
   unsigned int retarg = 0, argno;