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]

PR45445


We have an insn that has an earlyclobber output, and an input operand
that is a SImode subreg of a DImode pseudo.  The latter is live through
the insn.
In make_pseudo_conflict, we create artificial lifetimes, but we do it
for entire pseudo registers.  With the subword-tracking changes, this
causes a problem, because it leaves all involved registers in a "dead"
state, relying on other code to mark whatever is used in the insn as
live.  Thus, the entire reg gets marked as dead, but only the part
actually used gets marked as live again, leaving us with incorrect life
information.

The patch below allows us to track exactly the pieces used in the insn
in make_pseudo_conflict.  Mikael Pettersson has verified that it fixes
his bootstrap.

Ok after I also test on i686-linux?


Bernd

Attachment: ira-l.diff
Description: Text document


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