From ed1ecb19301902f8f245b301534820e8c9bf7a60 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Fri, 23 Jan 1998 23:06:03 +0000 Subject: [PATCH] cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE simplifications. * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE simplifications. From-SVN: r17465 --- gcc/ChangeLog | 3 +++ gcc/cse.c | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 029207164e6..1beac6c82b6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Fri Jan 23 22:48:24 1998 Jeffrey A Law (law@cygnus.com) + * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE + simplifications. + * crtstuff.c (init_dummy): Keep the epilogue in the init section for non-ELF systems. diff --git a/gcc/cse.c b/gcc/cse.c index e001597558f..3c27387562a 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -4713,6 +4713,17 @@ simplify_ternary_operation (code, mode, op0_mode, op0, op1, op2) && rtx_equal_p (XEXP (op0, 1), op1) && rtx_equal_p (XEXP (op0, 0), op2)) return op2; + else if (! side_effects_p (op0)) + { + rtx temp; + temp = simplify_relational_operation (GET_CODE (op0), op0_mode, + XEXP (op0, 0), XEXP (op0, 1)); + /* See if any simplifications were possible. */ + if (temp == const0_rtx) + return op2; + else if (temp == const1_rtx) + return op1; + } break; default: