aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple.c
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2011-04-15 14:27:55 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2011-04-15 14:27:55 +0000
commitedcdea5b0076b473fbed3d0338193aae7d0d9361 (patch)
tree20eb5a05b4a467b5a01f7586202e5298a4829e50 /gcc/gimple.c
parent0f141046690f732453dc182f1dedb9ae31622a93 (diff)
downloadgcc-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.c17
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"