diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-07-14 08:15:00 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-07-14 08:15:00 -0400 |
commit | e6a125a009ce35346ccc1afa40d9dd3714cef210 (patch) | |
tree | 2638450cee95afb1f7c4541a06762e9984ecee37 /gcc | |
parent | b7d9c4185decb56898befa10117145d6f2a024f2 (diff) | |
download | gcc-e6a125a009ce35346ccc1afa40d9dd3714cef210.zip gcc-e6a125a009ce35346ccc1afa40d9dd3714cef210.tar.gz gcc-e6a125a009ce35346ccc1afa40d9dd3714cef210.tar.bz2 |
(cse_insn): Ifdef out code that pre-truncates src_folded.
From-SVN: r10127
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cse.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -6317,6 +6317,13 @@ cse_insn (insn, in_libcall_block) simplified result, which may not necessarily be valid. */ src_folded = fold_rtx (src, insn); +#if 0 + /* ??? This caused bad code to be generated for the m68k port with -O2. + Suppose src is (CONST_INT -1), and that after truncation src_folded + is (CONST_INT 3). Suppose src_folded is then used for src_const. + At the end we will add src and src_const to the same equivalence + class. We now have 3 and -1 on the same equivalence class. This + causes later instructions to be mis-optimized. */ /* If storing a constant in a bitfield, pre-truncate the constant so we will be able to record it later. */ if (GET_CODE (SET_DEST (sets[i].rtl)) == ZERO_EXTRACT @@ -6332,6 +6339,7 @@ cse_insn (insn, in_libcall_block) = GEN_INT (INTVAL (src) & (((HOST_WIDE_INT) 1 << INTVAL (width)) - 1)); } +#endif /* Compute SRC's hash code, and also notice if it should not be recorded at all. In that case, |