diff options
author | Richard Guenther <rguenther@suse.de> | 2009-12-04 14:42:23 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-12-04 14:42:23 +0000 |
commit | c8b3e92f208415d758fcd6cf28ebe1b8202a36b9 (patch) | |
tree | d8d0f684663c0bb845825520cd93a658972b443f /gcc/tree-ssa-alias.c | |
parent | 321e10dd4ceaa5675213936b5d4be25c5b64c551 (diff) | |
download | gcc-c8b3e92f208415d758fcd6cf28ebe1b8202a36b9.tar.gz |
tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle BUILT_IN_MALLOC.
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.
From-SVN: r154979
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r-- | gcc/tree-ssa-alias.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index e7137087625..cbb43b5bfea 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -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. */ |