OSDN Git Service

2009-12-04 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Dec 2009 14:42:23 +0000 (14:42 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Dec 2009 14:42:23 +0000 (14:42 +0000)
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
BUILT_IN_MALLOC.
(call_may_clobber_ref_p_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154979 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-alias.c

index 6a59bd5..6319ca9 100644 (file)
@@ -1,3 +1,9 @@
+2009-12-04  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
+       BUILT_IN_MALLOC.
+       (call_may_clobber_ref_p_1): Likewise.
+
 2009-12-04  Matthias Klose  <doko@ubuntu.com>
            John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
index e713708..cbb43b5 100644 (file)
@@ -963,6 +963,7 @@ ref_maybe_used_by_call_p_1 (gimple call, ao_ref *ref)
          }
        /* The following builtins do not read from memory.  */
        case BUILT_IN_FREE:
+       case BUILT_IN_MALLOC:
        case BUILT_IN_MEMSET:
        case BUILT_IN_FREXP:
        case BUILT_IN_FREXPF:
@@ -1187,6 +1188,10 @@ call_may_clobber_ref_p_1 (gimple call, ao_ref *ref)
                                           size);
            return refs_may_alias_p_1 (&dref, ref, false);
          }
+       /* Allocating memory does not have any side-effects apart from
+          being the definition point for the pointer.  */
+       case BUILT_IN_MALLOC:
+         return false;
        /* Freeing memory kills the pointed-to memory.  More importantly
           the call has to serve as a barrier for moving loads and stores
           across it.  */