combine.c (nonzero_bits, case PLUS): If pointers extend unsigned and this is the...
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Tue, 6 Feb 2001 12:39:15 +0000 (12:39 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 6 Feb 2001 12:39:15 +0000 (07:39 -0500)
commitd14057222fec681710cd1b1ac1d47478c0466bfb
treeef948bedc788321fdca09d6b2f508f386ee213d9
parenta87b4257946d4453f250585aa22adc4f70db1165
combine.c (nonzero_bits, case PLUS): If pointers extend unsigned and this is the sum of a pointer and a constant...

* combine.c (nonzero_bits, case PLUS): If pointers extend unsigned
and this is the sum of a pointer and a constant, we know the result
did not overflow.
(num_sign_bit_copies, case PLUS): Likewise.
* explow.c (convert_memory_address): Remove opposite SUBREG.
* function.c (instantiate_new_reg): New function (from common code).
(instantiate_virtual_regs_1): Call it.
For PLUS, handle if (plus (subreg (virt-reg) (const_int))
if pointers sign- or zero-extend.
* simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND):
If pointers extend unsigned, use inside of SUBREG.
(simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend.

From-SVN: r39489
gcc/ChangeLog
gcc/combine.c
gcc/explow.c
gcc/function.c
gcc/simplify-rtx.c