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]

Re: RFA: one more patch to solve PR37535


On Mon, 29 Sep 2008, Vladimir Makarov wrote:

> Jeff, This is one more patch to fix PR37355.  The changes in comparison 
> with previous version are in mark_early_clobber and process_bb_node_lives.  
>  The problem was in wrong processing early clobber of hard registers which 
> are not operands and therefore have no constraints.  One example of such 
> insn from rs6000.md is
>
> (define_insn ""
>  [(set (mem:BLK (match_operand:SI 0 "gpc_reg_operand" "b"))
>    (mem:BLK (match_operand:SI 1 "gpc_reg_operand" "b")))
>   (use (match_operand:SI 2 "immediate_operand" "i"))
>   (use (match_operand:SI 3 "immediate_operand" "i"))
>   (clobber (match_operand:SI 4 "gpc_reg_operand" "=&r"))
>   (clobber (reg:SI  6))
>   (clobber (reg:SI  7))
>   (clobber (reg:SI  8))
>   (clobber (reg:SI  9))
>   (clobber (reg:SI 10))
>   (clobber (reg:SI 11))
>   (clobber (reg:SI 12))
>   (clobber (match_scratch:SI 5 "=q"))]
>
> Now all clobbers of hard registers are treated as early clobbers.

I have tested this patch.  As before, it fixes PR37535 but not PR37608.

I'm fairly certain that there is still a problem in the handling of
clobbers of hard registers.  I reworked the PA PIC call patterns to
avoid the r4 clobber (see attached change).  This avoids the problem
noted in PR37608 and the hppa64-hp-hpux11.11 target now builds successfully.

However, I have had problems with the miscompilation of __cxa_call_unexpected
in eh_personality.cc when the PIC register restore was exposed in the call
patterns.  I'm hopeful that the attached version of the change will avoid
this problem.  The restore of the PIC register in the exception receiver
was being deleted by cse.  Part of the problem is the backend doesn't know
whether a call is a noreturn call or not when the call pattern is being
emitted.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

Attachment: pa-r4.d.12
Description: Text document


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