aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-03-24 17:06:35 -0800
committerRichard Henderson <rth@gcc.gnu.org>2000-03-24 17:06:35 -0800
commit194c7c45b14098d8ed488e57d9d37e3b290ee4cd (patch)
tree9ebdd42ff7f81a59b06dea0e7f79c96c34249f4b /gcc/tree.h
parent1c33f70c9679c08daf29d6911240ff7b9da94ee0 (diff)
downloadgcc-194c7c45b14098d8ed488e57d9d37e3b290ee4cd.zip
gcc-194c7c45b14098d8ed488e57d9d37e3b290ee4cd.tar.gz
gcc-194c7c45b14098d8ed488e57d9d37e3b290ee4cd.tar.bz2
tree.c (lang_safe_for_unsave): Remove.
* tree.c (lang_safe_for_unsave): Remove. (unsafe_for_reeval): Transmute and rename from safe_for_unsave, allowing for two levels of unsafeness. Remove lang hook. * tree.h: Update declarations. * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. Always fail sibcalls when there are pending cleanups. From-SVN: r32735
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 61e7818..bc5225c 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1963,12 +1963,10 @@ extern tree unsave_expr_now PARAMS ((tree));
extern void (*lang_unsave) PARAMS ((tree *));
extern void (*lang_unsave_expr_now) PARAMS ((tree));
-/* If non-null, a language specific version of safe_for_unsave. */
-extern int (*lang_safe_for_unsave) PARAMS ((tree));
-
-/* Return nonzero if it is safe to unsave EXPR, else return zero.
- It is not safe to unsave EXPR if it contains any embedded RTL_EXPRs. */
-extern int safe_for_unsave PARAMS ((tree));
+/* Return 0 if it is safe to evaluate EXPR multiple times,
+ return 1 if it is safe if EXPR is unsaved afterward, or
+ return 2 if it is completely unsafe. */
+extern int unsafe_for_reeval PARAMS ((tree));
/* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size
or offset that depends on a field within a record.