diff mbox

[Pointer,Bounds,Checker,26/x] CCP

Message ID 20140915155755.GC6922@msticlxl57.ims.intel.com
State New
Headers show

Commit Message

Ilya Enkovich Sept. 15, 2014, 3:57 p.m. UTC
On 15 Sep 09:20, Jeff Law wrote:
> On 09/15/14 01:20, Ilya Enkovich wrote:
> 
> >>
> >>2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
> >>
> >>         * tree-ssa-ccp.c: Include tree-chkp.h.
> >>         (insert_clobber_before_stack_restore): Handle
> >>         BUILT_IN_CHKP_BNDRET calls.
> >>
> >>
> >>diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
> >>index eeefeaf..e99bcf5 100644
> >>--- a/gcc/tree-ssa-ccp.c
> >>+++ b/gcc/tree-ssa-ccp.c
> >>@@ -144,6 +144,7 @@ along with GCC; see the file COPYING3.  If not see
> >>  #include "diagnostic-core.h"
> >>  #include "dbgcnt.h"
> >>  #include "params.h"
> >>+#include "tree-chkp.h"
> >>
> >>
> >>  /* Possible lattice values.  */
> >>@@ -1880,6 +1881,9 @@ insert_clobber_before_stack_restore (tree saved_val, tree var,
> >>      else if (gimple_assign_ssa_name_copy_p (stmt))
> >>        insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var,
> >>                                            visited);
> >>+    else if (gimple_code (stmt) == GIMPLE_CALL
> >>+            && chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDRET))
> >>+      continue;
> >>      else
> >>        gcc_assert (is_gimple_debug (stmt));
> I think Richi also wanted the
> 
> gimple_code (stmt) == GIMPLE_CALL
> 
> Turned into:
> 
> is_gimple_call (stmt)
> 
> 
> Presumably using chkp_gimple_call_builtin_p rather than
> gimple_call_builtin_p is related to using different codes for the
> instrumented builtin calls?  Otherwise why use
> chkp_gimple_call_builtin_p rather than gimple_call_builtin_p?
> 
> 
> jeff
> 

The reason is that target may provide own version of builtin (and currently does it) for instrumentation.  Therefore we should obtain fndecl from target and then compare.  That is what chkp_gimple_call_builtin_p does.  I just moved gimple code check into chkp_gimple_call_builtin_p to make similar to gimple_call_builtin_p.

Thanks,
Ilya
--
2014-09-15  Ilya Enkovich  <ilya.enkovich@intel.com>

	* tree-ssa-ccp.c: Include tree-chkp.h.
	(insert_clobber_before_stack_restore): Handle
	BUILT_IN_CHKP_BNDRET calls.

Comments

Jeff Law Sept. 15, 2014, 9:12 p.m. UTC | #1
On 09/15/14 09:57, Ilya Enkovich wrote:
> On 15 Sep 09:20, Jeff Law wrote:
>> On 09/15/14 01:20, Ilya Enkovich wrote:
>>
>>>>
>>>> 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
>>>>
>>>>          * tree-ssa-ccp.c: Include tree-chkp.h.
>>>>          (insert_clobber_before_stack_restore): Handle
>>>>          BUILT_IN_CHKP_BNDRET calls.
>>>>
>>>>
>>>> diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
>>>> index eeefeaf..e99bcf5 100644
>>>> --- a/gcc/tree-ssa-ccp.c
>>>> +++ b/gcc/tree-ssa-ccp.c
>>>> @@ -144,6 +144,7 @@ along with GCC; see the file COPYING3.  If not see
>>>>   #include "diagnostic-core.h"
>>>>   #include "dbgcnt.h"
>>>>   #include "params.h"
>>>> +#include "tree-chkp.h"
>>>>
>>>>
>>>>   /* Possible lattice values.  */
>>>> @@ -1880,6 +1881,9 @@ insert_clobber_before_stack_restore (tree saved_val, tree var,
>>>>       else if (gimple_assign_ssa_name_copy_p (stmt))
>>>>         insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var,
>>>>                                             visited);
>>>> +    else if (gimple_code (stmt) == GIMPLE_CALL
>>>> +            && chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDRET))
>>>> +      continue;
>>>>       else
>>>>         gcc_assert (is_gimple_debug (stmt));
>> I think Richi also wanted the
>>
>> gimple_code (stmt) == GIMPLE_CALL
>>
>> Turned into:
>>
>> is_gimple_call (stmt)
>>
>>
>> Presumably using chkp_gimple_call_builtin_p rather than
>> gimple_call_builtin_p is related to using different codes for the
>> instrumented builtin calls?  Otherwise why use
>> chkp_gimple_call_builtin_p rather than gimple_call_builtin_p?
>>
>>
>> jeff
>>
>
> The reason is that target may provide own version of builtin (and currently does it) for instrumentation.  Therefore we should obtain fndecl from target and then compare.  That is what chkp_gimple_call_builtin_p does.  I just moved gimple code check into chkp_gimple_call_builtin_p to make similar to gimple_call_builtin_p.
>
> Thanks,
> Ilya
> --
> 2014-09-15  Ilya Enkovich  <ilya.enkovich@intel.com>
>
> 	* tree-ssa-ccp.c: Include tree-chkp.h.
> 	(insert_clobber_before_stack_restore): Handle
> 	BUILT_IN_CHKP_BNDRET calls.
OK.
Jeff
diff mbox

Patch

diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index a90f708..7c73c23 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -155,6 +155,7 @@  along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "wide-int-print.h"
 #include "builtins.h"
+#include "tree-chkp.h"
 
 
 /* Possible lattice values.  */
@@ -1938,6 +1939,8 @@  insert_clobber_before_stack_restore (tree saved_val, tree var,
     else if (gimple_assign_ssa_name_copy_p (stmt))
       insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var,
 					   visited);
+    else if (chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDRET))
+      continue;
     else
       gcc_assert (is_gimple_debug (stmt));
 }