diff options
author | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-06-04 18:04:36 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-06-04 18:04:36 +0000 |
commit | 0631e0bfb7d40fd3cb58d2d5400075f49000ab51 (patch) | |
tree | 829c85ccd2ce524faa3bdeb601db3f7f80cc282f /gcc/rtlanal.c | |
parent | 5c626f5260d6e2f48bdbd5461b74d11fdd02afe0 (diff) | |
download | gcc-0631e0bfb7d40fd3cb58d2d5400075f49000ab51.tar.gz |
rtlanal.c (operand_preference): Fix preference for objects.
* rtlanal.c (operand_preference): Fix preference for objects.
* gcse.c (handle_avail_expr): Be prepared to handle single_set
parallels.
* combine.c (if_then_else_cond): Use simplify_subreg instead
of operand_subword.
* integreate.c (sub_constants): Likewise.
* emit-rtl.c (constant_subword): Deprecate; remove most of code
and use simplify_gen_subreg.
Mon Jun 4 19:55:23 CEST 2001 Lars Brinkhoff <lars@nocrew.org>
* sibcall.c (skip_copy_to_return_value): recognize the situation
when the called function's return value is copied into an
intermediate pseudo, and then into the calling functions return
value register.
From-SVN: r42864
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r-- | gcc/rtlanal.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 0f0f6cd1fc5..ca144159cec 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2515,16 +2515,16 @@ operand_preference (op) { /* Constants always come the second operand. Prefer "nice" constants. */ if (GET_CODE (op) == CONST_INT) - return -4; + return -5; if (GET_CODE (op) == CONST_DOUBLE) - return -3; + return -4; if (CONSTANT_P (op)) - return -2; + return -3; /* SUBREGs of objects should come second. */ if (GET_CODE (op) == SUBREG && GET_RTX_CLASS (GET_CODE (SUBREG_REG (op))) == 'o') - return -1; + return -2; /* If only one operand is a `neg', `not', `mult', `plus', or `minus' expression, it will be the first @@ -2534,9 +2534,10 @@ operand_preference (op) || GET_CODE (op) == MINUS) return 2; - /* Complex expressions should be the first. */ + /* Complex expressions should be the first, so decrease priority + of objects. */ if (GET_RTX_CLASS (GET_CODE (op)) == 'o') - return 1; + return -1; return 0; } |