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] |
> 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] |