(expand_return): Don't use jumps for "return x == y" if they are

expensive.

From-SVN: r5043
This commit is contained in:
Richard Kenner 1993-07-30 06:45:24 -04:00
parent 790e949032
commit 5eb94e4e8b
1 changed files with 5 additions and 3 deletions

View File

@ -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))
{