Re: Help with reload bug, please

2015-01-26 Thread Jeff Law
On 01/23/15 14:46, Andrew Stubbs wrote: SECONDARY_INPUT_RELOAD_CLASS is another missed opportunity. Just like the legitimate address stuff, this has checks for the various VFP classes, but reload detects the class in the same flawed way, so an integer reload gives GENERAL_REGS even when the dest

Re: Help with reload bug, please

2015-01-23 Thread Andrew Stubbs
On 23/01/15 16:34, Jeff Law wrote: Just for reference, the PA allows a 14 bit displacement in memory addresses which use integer registers, but only a 5 bit displacement for FP registers. Other than the displacement amounts, I suspect this is the same core problem you have on your port. Yes, t

Re: Help with reload bug, please

2015-01-23 Thread Jeff Law
On 01/23/15 06:46, Andrew Stubbs wrote: How does reload ensure that an SImode value (re)loaded into an FP register has a valid stack index? The FP load instruction allows a smaller index range than the integer equivalent, but nothing checks the destination register, only the source mode. Unfo

Re: Help with reload bug, please

2015-01-23 Thread Joern Rennecke
On 23 January 2015 at 13:46, Andrew Stubbs wrote: > How does reload ensure that an SImode value (re)loaded into an FP register > has a valid stack index? You could use CANNOT_CHANGE_MODE_CLASS, or request secondary reload. For the latter, you can look at the memory/pseudo to decide if the address

Re: Help with reload

2010-06-22 Thread Jeff Law
On 06/22/10 08:52, Revital1 Eres wrote: Hello, I have a question regarding code generation for a new target I'm working on. I am using GCC 4.6. In reload pass the following first instruction is replaced with the second one after spilling reg 182 to the stack. The problem is that the generated

Re: Help with reload and naked constant sum causing ICE

2008-05-29 Thread Denis Chertykov
2008/5/29 <[EMAIL PROTECTED]>: > Again thank you and Denis for your comment. > > Here is what I deduce from code and Denis comments - I am sure he (and > others) will correct me if wrong :-) > > > The main issue is that we have one pointer register that cannot take offset > and two base pointers

Re: Help with reload and naked constant sum causing ICE

2008-05-29 Thread hutchinsonandy
kov <[EMAIL PROTECTED]> To: Jeff Law <[EMAIL PROTECTED]> Cc: Andy H <[EMAIL PROTECTED]>; GCC Development ; [EMAIL PROTECTED] Sent: Thu, 29 May 2008 3:23 am Subject: Re: Help with reload and naked constant sum causing ICE 2008/5/29 Jeff Law <[EMAIL PROTECTED]>: Ric

Re: Help with reload and naked constant sum causing ICE

2008-05-29 Thread Denis Chertykov
2008/5/29 Jeff Law <[EMAIL PROTECTED]>: > Richard Sandiford wrote: >> >> Andy H <[EMAIL PROTECTED]> writes: If L_R_A does nothing with it, the normal reload handling will first try: (const:HI (plus:HI (symbol_ref:HI ("chk_fail_buf") (const_int 2 >>> >>> This worke

Re: Help with reload and naked constant sum causing ICE

2008-05-28 Thread Jeff Law
Richard Sandiford wrote: Andy H <[EMAIL PROTECTED]> writes: If L_R_A does nothing with it, the normal reload handling will first try: (const:HI (plus:HI (symbol_ref:HI ("chk_fail_buf") (const_int 2 This worked just as your described after I added test of reg_equiv_constant[] inside L_

Re: Help with reload and naked constant sum causing ICE

2008-05-28 Thread Richard Sandiford
[EMAIL PROTECTED] writes: > I have copied Anatoly for comment, and I promise to revisit this again > after reviewing reload capabilities. Thanks. Looking back, my message sounded like I was holding you personally responsible for the current AVR macro. Didn't mean to do that ;) Richard

Re: Help with reload and naked constant sum causing ICE

2008-05-28 Thread hutchinsonandy
May 2008 3:00 pm Subject: Re: Help with reload and naked constant sum causing ICE Andy H <[EMAIL PROTECTED]> writes: If L_R_A does nothing with it, the normal reload handling will first try: (const:HI (plus:HI (symbol_ref:HI ("chk_fail_buf") (const_int 2 This worked just as

Re: Help with reload and naked constant sum causing ICE

2008-05-28 Thread Richard Sandiford
Andy H <[EMAIL PROTECTED]> writes: >> If L_R_A does nothing with it, >> the normal reload handling will first try: >> >> (const:HI (plus:HI (symbol_ref:HI ("chk_fail_buf") (const_int 2 >> > > This worked just as your described after I added test of > reg_equiv_constant[] inside L_R_A . >

Re: Help with reload and naked constant sum causing ICE

2008-05-27 Thread Andy H
If L_R_A does nothing with it, the normal reload handling will first try: (const:HI (plus:HI (symbol_ref:HI ("chk_fail_buf") (const_int 2 This worked just as your described after I added test of reg_equiv_constant[] inside L_R_A . So I guess that looks like the fix for bug I post

Re: Help with reload and naked constant sum causing ICE

2008-05-27 Thread Andy H
Thank you very much for reply. reload is such a lonely place! TBH, it sounds like the opposite: LEGITIMIZE_RELOAD_ADDRESS should not be handling this address at all. Yes but reload will not do anything before call to L_R_A. So in practice that would mean L_R_A has to check reg_equiv_constant[re

Re: Help with reload and naked constant sum causing ICE

2008-05-27 Thread Richard Sandiford
Andy H <[EMAIL PROTECTED]> writes: > I am am tracking down ICE bug in reload during global register allocation. > > I have managed to find root of problem but I am not sure how it should > work correctly. I would appreciate anyones advise on this. > > ICE is from assert in push_reload to ensure