This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: your mail
- From: Michael Matz <matz at suse dot de>
- To: kripa shankar <kripa82 at yahoo dot com>
- Cc: gcc at gnu dot org, gcc-help at gcc dot gnu dot org, crossgcc at sources dot redhat dot com
- Date: Mon, 23 Feb 2004 17:42:27 +0100 (CET)
- Subject: Re: your mail
- References: <20040223154755.23916.qmail@web41606.mail.yahoo.com>
Hi,
On Mon, 23 Feb 2004, kripa shankar wrote:
> ;; Start of basic block 2, registers live: 11 [fp] 13 [sp]
> (note 62 41 45 [bb 2] NOTE_INSN_BASIC_BLOCK)
> (insn 45 62 46 (set (reg/i:SI 0 r0) (const_int 0 [0x0])) 176 {*movsi_insn} (nil) (expr_list:REG_EQUAL (const_int 0 [0x0]) (nil)))
> (insn 46 45 76 (use (reg/i:SI 0 r0)) -1 (insn_list 45 (nil)) (nil))
> (insn 76 46 77 (set (reg:SI 7 r7) (plus:SI (reg:SI 5 r5) (const_int 2 [0x2]))) -1 (nil) (nil))
> (insn 77 76 50 (set (reg:SI 6 r6) (plus:SI (reg:SI 4 r4) (const_int 2 [0x2]))) -1 (nil) (nil))
> ;; End of basic block 2
> (note 50 77 63 0 NOTE_INSN_BLOCK_END)
> (note 63 50 0 "" NOTE_INSN_DELETED)
>
> The instructions inserted are r7 = r5 + 2;r6 = r4 + 2; But the problem
> is that the inserted instructions are not present in both asm file
> (fourth.s) and the output binary file (fourth.o).. I have inserted these
> instructions right after all the optimization passess and before the
> final pass (final.c) where RTL gets converted into Assembly. Kindly help
> me.
There is not enough information. Where exactly have you added the code to
add those insns? About which compiler version do you speak? Produce all
dump files (-da) and look which dump misses them first. The problem is,
that you include those instructions without updating lifeness (i.e. the
compiler doesn't see, that r6 and r7 really are required after you've set
them. So, if there is any pass deleting useless insns after you inserted
them, they will get deleted.
Ciao,
Michael.