From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeffrey A Law To: "John David Anglin" Cc: alan@linuxcare.com.au, gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org, parisc-linux@thepuffingroup.com Subject: Re: testcase for hppa64 gcc bug Date: Tue, 05 Dec 2000 20:11:00 -0000 Message-id: <17409.976075966@upchuck> References: <200011091739.MAA07483@hiauly1.hia.nrc.ca> X-SW-Source: 2000-12/msg00285.html In message <200011091739.MAA07483@hiauly1.hia.nrc.ca>you write: > For the record, here is my final patch regarding making the arg_pointer > eliminable for TARGET_64BIT. I think the code it generates is correct but > it hasn't been extensively tested. However, I don't recommend it for > installation since in comparing the assembler code generated with and > without elimination for a couple of test cases, I didn't observe any > significant improvement in the code with the patch. Possibly, the patch > implicitly disables elimination when the arg_pointer is needed. > > I do find that Alan Modra's ARG_POINTER_INVARIANT patch needs to be install > ed > to get correct code with his test case. > > There is one part of the patch below which I think needs to be installed. > That is > > (call, call_value): Always USE the arg_pointer for TARGET_64BIT. > > The use for the arg_pointer needs to be pulled out of the `if (flag_pic)'. > > Dave > -- > J. David Anglin dave.anglin@nrc.ca > National Research Council of Canada (613) 990-0752 (FAX: 952-6 > 605) > > 2000-11-07 John David Anglin > > * pa-linux64.h (ARG_POINTER_INVARIANT): Define even when the > arg_pointer is being eliminated. > (ELIMINABLE_REGS): Enable elimination of the arg_pointer. > (INITIAL_ELIMINATION_OFFSET): Revise offsets for arg_pointer. > * pa.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3 and > canonicalize_funcptr_for_compare): Put "(reg:SI 26)" inside > unspec to prevent elimination. > (call, call_value): Always USE the arg_pointer for TARGET_64BIT. > Use the new addmovdi3 insn to load the arg_pointer register. > (addmovdi3 and mov_from_r29_si): New insn and expand which prevent > r29 from being eliminated in call setups and millicode returns. I haven't followed this discussion too closely. Is this patch still needed after some of the recent changes in how we compute liveness for the argument pointer? jeff