diff options
author | Richard Guenther <rguenther@suse.de> | 2011-12-06 09:02:17 +0000 |
---|---|---|
committer | Richard Guenther <rguenther@suse.de> | 2011-12-06 09:02:17 +0000 |
commit | 67110b56f7b46ef9ec4997609d22b3f29095b075 (patch) | |
tree | 84166cf1fe0e2bf39bec0a5b5c73e24040f13a0f /gcc/gimple.c | |
parent | d8f28102b4c7a924fa039e256fc52e93a3a18e9e (diff) |
2011-12-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51363
* gimple.c (gimple_rhs_has_side_effects): Remove.
* gimple.h (gimple_rhs_has_side_effects): Likewise.
* tree-ssa-dom.c (optimize_stmt): Simplify conditional.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@182041 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r-- | gcc/gimple.c | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c index c72b39a0d64..81c119048f2 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -2484,69 +2484,6 @@ gimple_has_side_effects (const_gimple s) return false; } -/* Return true if the RHS of statement S has side effects. - We may use it to determine if it is admissable to replace - an assignment or call with a copy of a previously-computed - value. In such cases, side-effects due to the LHS are - preserved. */ - -bool -gimple_rhs_has_side_effects (const_gimple s) -{ - unsigned i; - - if (is_gimple_call (s)) - { - unsigned nargs = gimple_call_num_args (s); - tree fn; - - if (!(gimple_call_flags (s) & (ECF_CONST | ECF_PURE))) - return true; - - /* We cannot use gimple_has_volatile_ops here, - because we must ignore a volatile LHS. */ - fn = gimple_call_fn (s); - if (fn && (TREE_SIDE_EFFECTS (fn) || TREE_THIS_VOLATILE (fn))) - { - gcc_assert (gimple_has_volatile_ops (s)); - return true; - } - - for (i = 0; i < nargs; i++) - if (TREE_SIDE_EFFECTS (gimple_call_arg (s, i)) - || TREE_THIS_VOLATILE (gimple_call_arg (s, i))) - return true; - - return false; - } - else if (is_gimple_assign (s)) - { - /* Skip the first operand, the LHS. */ - for (i = 1; i < gimple_num_ops (s); i++) - if (TREE_SIDE_EFFECTS (gimple_op (s, i)) - || TREE_THIS_VOLATILE (gimple_op (s, i))) - { - gcc_assert (gimple_has_volatile_ops (s)); - return true; - } - } - else if (is_gimple_debug (s)) - return false; - else - { - /* For statements without an LHS, examine all arguments. */ - for (i = 0; i < gimple_num_ops (s); i++) - if (TREE_SIDE_EFFECTS (gimple_op (s, i)) - || TREE_THIS_VOLATILE (gimple_op (s, i))) - { - gcc_assert (gimple_has_volatile_ops (s)); - return true; - } - } - - return false; -} - /* Helper for gimple_could_trap_p and gimple_assign_rhs_could_trap_p. Return true if S can trap. When INCLUDE_MEM is true, check whether the memory operations could trap. When INCLUDE_STORES is true and |