This is the mail archive of the 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]

Re: PATCH: PA PIC symbolic memory fix PART 2

>   In message <>you write:
>   > Hmm.  This suggests that the the DLT load insn should again be a separate
>   > insn.  Then, when a spill occurs for a source MEM equivalent pseudo, the
>   > destination register could be used as a scratch register to resynthesize
>   > the HIGH part.
> Maybe -- you still also have to get %r1 as a temporary as the addil
> instruction always has %r1 as its destinatin.

I think that is the key.  We have to keep all uses of %r1 together until
reload has completed.  If scheduling separates a pair of insns using %r1,
we can't substitute a pic MEM equivalent without possibly clobbering %r1.

On a related issue, I tried to determine why defining IS_RELOADING_PSEUDO_P
is necessary for non pic code.  It seems without it that the following
substitution occasionally occurs into the catch all move insn at line 2099

(set (reg) (symbol))

Again, the insn at 2099 can't handle this.  I hadn't fully appreciated
that CSE simplifies LO_SUM MEMs to just the constant symbol reference.

J. David Anglin                        
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

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