From 4c64b884062ef166002a9482b43d0d29d4178698 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 9 Apr 1994 16:05:15 -0400 Subject: [PATCH] (fold): Avoid exponential work when simplifying conditional expressions; don't recurse twice if ARG1 is constant. From-SVN: r7010 --- gcc/fold-const.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 81f7b4f0301..b3e7e1f8f23 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3420,7 +3420,8 @@ fold (expr) tree lhs = fold (build (code, type, true_value, arg1)); tree rhs = fold (build (code, type, false_value, arg1)); - if (TREE_CONSTANT (lhs) || TREE_CONSTANT (rhs)) + if (TREE_CONSTANT (lhs) || TREE_CONSTANT (rhs) + || TREE_CONSTANT (arg1)) return fold (build (COND_EXPR, type, test, lhs, rhs)); arg1 = save_expr (arg1); -- 2.30.2