aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-05-14 08:46:33 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-05-14 08:46:33 +0000
commit9cbbba287d1ca590c503682d72df99fa2800b985 (patch)
tree24a9b1d109a3426404acbce3f2ac87147420a614 /gcc/tree-ssa-pre.c
parent5341ab80950eb02944ac1a9e25814833d51cf649 (diff)
downloadgcc-9cbbba287d1ca590c503682d72df99fa2800b985.zip
gcc-9cbbba287d1ca590c503682d72df99fa2800b985.tar.gz
gcc-9cbbba287d1ca590c503682d72df99fa2800b985.tar.bz2
stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype into a PLUS_EXPR byte offset.
* stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype into a PLUS_EXPR byte offset. * tree-ssa-pre.c (can_value_number_call): Delete. (compute_avail): Skip all statements with side effects. <GIMPLE_CALL>: Skip calls to internal functions. From-SVN: r187450
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index fcd7fee..0550879 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -2586,19 +2586,6 @@ compute_antic (void)
sbitmap_free (changed_blocks);
}
-/* Return true if we can value number the call in STMT. This is true
- if we have a pure or constant call to a real function. */
-
-static bool
-can_value_number_call (gimple stmt)
-{
- if (gimple_call_internal_p (stmt))
- return false;
- if (gimple_call_flags (stmt) & (ECF_PURE | ECF_CONST))
- return true;
- return false;
-}
-
/* Return true if OP is a tree which we can perform PRE on.
This may not match the operations we can value number, but in
a perfect world would. */
@@ -3975,8 +3962,7 @@ compute_avail (void)
or control flow.
If this isn't a call or it is the last stmt in the
basic-block then the CFG represents things correctly. */
- if (is_gimple_call (stmt)
- && !stmt_ends_bb_p (stmt))
+ if (is_gimple_call (stmt) && !stmt_ends_bb_p (stmt))
{
/* Non-looping const functions always return normally.
Otherwise the call might not return or have side-effects
@@ -3998,8 +3984,7 @@ compute_avail (void)
bitmap_value_insert_into_set (AVAIL_OUT (block), e);
}
- if (gimple_has_volatile_ops (stmt)
- || stmt_could_throw_p (stmt))
+ if (gimple_has_side_effects (stmt) || stmt_could_throw_p (stmt))
continue;
switch (gimple_code (stmt))
@@ -4017,7 +4002,8 @@ compute_avail (void)
pre_expr result = NULL;
VEC(vn_reference_op_s, heap) *ops = NULL;
- if (!can_value_number_call (stmt))
+ /* We can value number only calls to real functions. */
+ if (gimple_call_internal_p (stmt))
continue;
copy_reference_ops_from_call (stmt, &ops);