This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [trunk][patch] fix another invalid sharing in see


> How about instead doing:
>    reset_used_flags (ref_copy);
>    ref_copy = copy_rtx_if_shared (ref_copy);
> That should avoid always generating garbage for an unlikely scenario.
>
> Also, I suspect you only need to do this after the comment
>  /* The manipulation succeeded.  Store the new manipulated reference.  */
> If we don't reach that comment, ref_copy is discarded.

I was able to move the copy, but using copy_rtx_if_shared fails:


/home/espindola/test.i:6: error: invalid rtl sharing found in the
insn(insn 30 10 28 2 /home/espindola/test.i:4 (parallel [
(set (subreg:SI (reg:DI 60) 0)                (ashiftrt:SI (reg:SI 62
[ a ])                    (const_int 13 [0xd])))            (clobber
(reg:CC 17 flags))        ]) 522 {*ashrsi3_1} (expr_list:REG_UNUSED
(reg:CC 17 flags)        (expr_list:REG_EQUAL (div:SI (subreg:SI
(reg:DI 60) 0)                (const_int 8192 [0x2000]))
(nil))))/home/espindola/test.i:6: error: shared rtx(subreg:SI (reg:DI
60) 0)


I have attached a new patch. OK if bootstraps and tests are OK?



2008-05-26  Rafael Espindola  <espindola@google.com>

  * see.c (see_def_extension_not_merged): Use copy_rtx to avoid
invalid sharing.

  * gcc/testsuite/gcc.dg/20080526-1.c: New test.

OK if bootstraps and tests are OK?

> Ian
>


Cheers,
-- 
Rafael Avila de Espindola

Google Ireland Ltd.
Gordon House
Barrow Street
Dublin 4
Ireland

Registered in Dublin, Ireland
Registration Number: 368047

Attachment: see-fix5.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]