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] |
On Fri, Sep 30, 2005 at 08:06:45PM +0200, Paolo Bonzini wrote:The problem is that sometimes the final pseudo is the same that is used in non-redundant or inserted computations (the "canonical" one holding the address), so delete_trivially_dead_insns cannot delete it.
Therefore I tried to implement a restricted, but faster and more powerful form of GCSE: it looks at REG_EQUAL notes to detect address computations, gathers all the instructions depending on the one with the note, and treats them as a single entity for the sake of eliminating them.
Is there any real benefit to moving instructions, instead of emitting new code and letting rtl DCE do its job?
If you do that, then addingI looked (albeit very briefly) into that, but the REG_EQUAL note specifies a computation that is quite complex and emit_move_insn does not handle the "lowering" of such expressions. We cannot give
a few lines to the existing GCSE pass to look at (appropriate) REG_EQUAL
notes, and invoking emit_move_insn to rebuild the sequences would seem
simpler than a new pass.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |