diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-04-15 14:27:55 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2011-04-15 14:27:55 +0000 |
commit | edcdea5b0076b473fbed3d0338193aae7d0d9361 (patch) | |
tree | 20eb5a05b4a467b5a01f7586202e5298a4829e50 /gcc/gimple.c | |
parent | 0f141046690f732453dc182f1dedb9ae31622a93 (diff) | |
download | gcc-edcdea5b0076b473fbed3d0338193aae7d0d9361.zip gcc-edcdea5b0076b473fbed3d0338193aae7d0d9361.tar.gz gcc-edcdea5b0076b473fbed3d0338193aae7d0d9361.tar.bz2 |
gimple.h (gimple_asm_clobbers_memory_p): Declare.
* gimple.h (gimple_asm_clobbers_memory_p): Declare.
* gimple.c (gimple_asm_clobbers_memory_p): Define.
* ipa-pure-const.c (check_stmt): Call it.
* tree-ssa-operands.c (get_asm_expr_operands): Likewise.
From-SVN: r172496
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r-- | gcc/gimple.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c index 090fc94..5dc62ea 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -5142,4 +5142,21 @@ gimple_call_builtin_p (gimple stmt, enum built_in_function code) && DECL_FUNCTION_CODE (fndecl) == code); } +/* Return true if STMT clobbers memory. STMT is required to be a + GIMPLE_ASM. */ + +bool +gimple_asm_clobbers_memory_p (const_gimple stmt) +{ + unsigned i; + + for (i = 0; i < gimple_asm_nclobbers (stmt); i++) + { + tree op = gimple_asm_clobber_op (stmt, i); + if (strcmp (TREE_STRING_POINTER (TREE_VALUE (op)), "memory") == 0) + return true; + } + + return false; +} #include "gt-gimple.h" |