diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-01-23 23:06:03 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-01-23 16:06:03 -0700 |
commit | ed1ecb19301902f8f245b301534820e8c9bf7a60 (patch) | |
tree | ed67b6a1f37230177099d0ed978173edd15252cb /gcc | |
parent | b4b04bf97f57d04a47f6c86a68b15b4bf5d6d245 (diff) | |
download | gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.zip gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.tar.gz gcc-ed1ecb19301902f8f245b301534820e8c9bf7a60.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cse.c | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0292071..1beac6c 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. @@ -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: |