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: [PING^3] Fix reloading of paradoxical subregs into even-only registers


On Tue, Aug 19, 2008 at 9:59 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Aug 19, 2008 at 9:25 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Tue, Aug 19, 2008 at 8:58 AM, Andreas Schwab <schwab@suse.de> wrote:
>>> Michael Matz <matz@suse.de> writes:
>>>
>>>> Hi,
>>>>
>>>> On Tue, 19 Aug 2008, Michael Matz wrote:
>>>>
>>>>> Hi H.J.,
>>>>> On Mon, 18 Aug 2008, H.J. Lu wrote:
>>>>>
>>>>> > Your patch breaks Linux/ia64:
>>>>> >
>>>>> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37155
>>>>>
>>>>> from the bugreport it's obvious that the ia64 port really wants to access
>>>>> reg 328 (sfp) in SImode.  But that mode currently is not accepted by
>>>>> HARD_REGNO_MODE_OK.  I can't see a reason why SImode is allowed for
>>>>> GR_REGNO_P, but not for GENERAL_REGNO_P (the only difference being exactly
>>>>> the register in question, FRAME_POINTER_REGNUM).  OTOH I don't know the
>>>>> ia64 port very well.  This patch fixes the testcase.  H.J. can you
>>>>> regstrap this?
>>>>
>>>> Hmm, hmm, I should read mailing lists not just personal mail before
>>>> starting to work.  Sorry Andreas; but at least two independend people came
>>>> to the same conclusion ;)
>>>
>>> I'm not yet sure whether it's the right fix.  There some regressions in
>>> the gcc testsuite, but they may be related to the other changes since
>>> yesterday.
>>>
>>
>> The main regressions I saw are
>>
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O1  (internal compiler error)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O1  (test for excess errors)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O2  (internal compiler error)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O2  (test for excess errors)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O3 -fomit-frame-pointer
>> (internal compiler error)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O3 -fomit-frame-pointer
>> (test for excess errors)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O3 -g  (internal compiler error)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -O3 -g  (test for excess errors)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -Os  (internal compiler error)
>> +FAIL: gcc.c-torture/compile/pr19357.c  -Os  (test for excess errors)
>> +FAIL: gcc.dg/compat/scalar-by-value-3 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/scalar-by-value-6 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/scalar-return-3 c_compat_x_tst.o compile,
>> (internal compiler error)
>> +FAIL: gcc.dg/compat/struct-by-value-18 c_compat_x_tst.o compile,
>> (internal compiler error)
>>
>> I don't think it is the right fix.
>>
>
> Revert revision 139207 fixes those regressions.
>

I am testing this patch. Richard, does it work for big endian MIPS targets?

Thanks.


-- 
H.J.
---
2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/37155
	* rtlanal.c (subreg_offset_representable_p): Check
	HARD_REGNO_MODE_OK only for paradoxical subregs.

Attachment: gcc-pr37155-2.patch
Description: Binary data


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