This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
combine register note problem with multi-word values
- From: Miles Bader <miles at lsi dot nec dot co dot jp>
- To: gcc at gcc dot gnu dot org
- Date: Thu, 09 Jun 2005 10:44:42 +0900
- Subject: combine register note problem with multi-word values
- Reply-to: Miles Bader <miles at gnu dot org>
When `try_combine' combines two instructions, it adds the register notes
from the old insns to the new combined insn. It also adds new register
notes calculated from the new insn's clobbers by `recog_for_combine'.
In this process, it (`distribute_notes') suppresses duplicate register
notes, but in doing so, seems to basically ignore the mode used in the
notes' REG expressions -- so if the new note really refers to multiple
registers because the mode is larger than word size, and the old note
does _not_ (but does refer to the same starting register), then the
result will only contain the register note for the smaller value.
Since the new notes calculated by `recog_for_combine', which contain
precise information from the new insn's clobbers, are added _last_, it
seems as if this may result in incorrect register notes.
Would it be OK to add the new reg notes calculated from clobbers first,
before the notes from the old insns?
Thanks,
-Miles
--
Come now, if we were really planning to harm you, would we be waiting here,
beside the path, in the very darkest part of the forest?