This is the mail archive of the gcc@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: PR 12828



On 03/12/2003, at 4:12 PM, Dale Johannesen wrote:


instantiate_virtual_regs() changes this to
...
(insn 67 228 68 6 0x40586630 (parallel [
            (set (reg:DF 129)  (float:DF (reg:SI 128)))
            ......
            (clobber (mem:DF (plus:SI (reg/f:SI 30 r30)
                        (reg:SI 194)) [0 S8 A8]))
           ........

This confuses the loop optimizer: when pulling the set of R129 out of a loop,
it does not know there's a dependency on R194. It looks like there ought to
be a USE of R194 inside the parallel, but I see no reason that instantiate_virtual_regs
can assume such a pattern exists (it doesn't now). I could change the loop
optimizer to look inside CLOBBER(MEM, but I'm concerned that similar problems
could exist elsewhere. What's the right approach here?


The loop optimizer should look inside CLOBBER (and inside anything else that might be relevant).


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