This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Deletion of trivial insn during IRA
- From: paulo at matos-sorge dot com (Paulo J. Matos)
- To: gcc at gcc dot gnu dot org
- Date: Mon, 03 Oct 2011 12:16:49 +0100
- Subject: Deletion of trivial insn during IRA
Hi,
I am trying to find where IRA, is deleting trivial insn like:
(set r1 r1)
The problem I am facing is that I have managed to convince GCC to handle
moves that clobber RCC like:
(parallel [(set reg1 reg2) (clobber rcc)])
However, I am getting loads of insn like:
(parallel [(set r1 r2) (clobber rcc)])
in the insn stream after IRA. This is also blocking some later
optimisations.
I am trying to find where GCC actually removes insns where source and
dest are the same. I understand that if there's a general clobber then
the insn shouldn't be removed, however if the clobber is on the flags
register then it should go ahead and remove it anyway.
Can someone guide me to the right place where this is happening?
Cheers,
--
PMatos