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]

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)"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]