aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/stmt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 52beb26..af00b07 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1,5 +1,5 @@
/* Expands front end tree to back end RTL for GNU C-Compiler
- Copyright (C) 1987, 1988, 1989, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -2388,11 +2388,13 @@ expand_return (retval)
because expand_null_return takes care of them, too.
Any reason why not? */
if (HAVE_return && cleanup_label == 0
- && ! current_function_returns_pcc_struct)
+ && ! current_function_returns_pcc_struct
+ && BRANCH_COST <= 1)
{
/* If this is return x == y; then generate
if (x == y) return 1; else return 0;
- if we can do it with explicit return insns. */
+ if we can do it with explicit return insns and
+ branches are cheap. */
if (retval_rhs)
switch (TREE_CODE (retval_rhs))
{