This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
ARM - register liveness problem
- From: Vidacs Laszlo <lac at rgai dot hu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 27 Feb 2003 15:28:51 +0100 (CET)
- Subject: ARM - register liveness problem
Hi all,
I am writing a patch for ARM target. I would like to use register liveness
information during the peephole2 phase. The peep2_regno_dead_p() function
says that register r4 is live at instruction marked with (*) in the
example below, but i think it is dead because of the ldmfd instruction.
Why is it still considered live?
One more question: is it possible to read liveness information of flags
(C, Z, etc.) ?
Thanks in advance,
Laszlo Vidacs
----------------------------------------------------------------------
GCC: (GNU) 3.3 20030224 (prerelease)
Build & Host: Linux 2.4.20 i686 unknown, Target: arm-unknown-elf
...
mov r4, ...
...
mov r1, r4 @ 29 *arm_movsi_insn/1
(*) mov r0, #8 @ 28 *arm_movsi_insn/1
ldmfd sp!, {r4, lr} @ 47 sibcall_epilogue
b func @ 30 *sibcall_insn
.size foo, .-foo
.ident "GCC: (GNU) 3.3 20030224 (prerelease)"