cse.c (52284) | cse.c (52750) |
---|---|
1/* Common subexpression elimination for GNU compiler. 2 Copyright (C) 1987, 88, 89, 92-7, 1998, 1999 Free Software Foundation, Inc. 3 4This file is part of GNU CC. 5 6GNU CC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 2, or (at your option) --- 5847 unchanged lines hidden (view full) --- 5856 chosing positive and negative constants. Having the positive 5857 constant previously-used is the more common case. Be sure 5858 the resulting constant is non-negative; if const_arg1 were 5859 the smallest negative number this would overflow: depending 5860 on the mode, this would either just be the same value (and 5861 hence not save anything) or be incorrect. */ 5862 if (const_arg1 != 0 && GET_CODE (const_arg1) == CONST_INT 5863 && INTVAL (const_arg1) < 0 | 1/* Common subexpression elimination for GNU compiler. 2 Copyright (C) 1987, 88, 89, 92-7, 1998, 1999 Free Software Foundation, Inc. 3 4This file is part of GNU CC. 5 6GNU CC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 2, or (at your option) --- 5847 unchanged lines hidden (view full) --- 5856 chosing positive and negative constants. Having the positive 5857 constant previously-used is the more common case. Be sure 5858 the resulting constant is non-negative; if const_arg1 were 5859 the smallest negative number this would overflow: depending 5860 on the mode, this would either just be the same value (and 5861 hence not save anything) or be incorrect. */ 5862 if (const_arg1 != 0 && GET_CODE (const_arg1) == CONST_INT 5863 && INTVAL (const_arg1) < 0 |
5864 && - INTVAL (const_arg1) >= 0 | 5864 /* This used to test 5865 5866 - INTVAL (const_arg1) >= 0 5867 5868 But The Sun V5.0 compilers mis-compiled that test. So 5869 instead we test for the problematic value in a more direct 5870 manner and hope the Sun compilers get it correct. */ 5871 && INTVAL (const_arg1) != 5872 ((HOST_WIDE_INT) 1 << (HOST_BITS_PER_WIDE_INT - 1)) |
5865 && GET_CODE (folded_arg1) == REG) 5866 { 5867 rtx new_const = GEN_INT (- INTVAL (const_arg1)); 5868 struct table_elt *p 5869 = lookup (new_const, safe_hash (new_const, mode) % NBUCKETS, 5870 mode); 5871 5872 if (p) --- 3420 unchanged lines hidden --- | 5873 && GET_CODE (folded_arg1) == REG) 5874 { 5875 rtx new_const = GEN_INT (- INTVAL (const_arg1)); 5876 struct table_elt *p 5877 = lookup (new_const, safe_hash (new_const, mode) % NBUCKETS, 5878 mode); 5879 5880 if (p) --- 3420 unchanged lines hidden --- |