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: PATCH [6/n] X32: Supprot 32bit address


On Tue, Jul 19, 2011 at 10:49 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Jul 19, 2011 at 10:33 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>> On Tue, Jul 19, 2011 at 6:37 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>>>> Sometimes, the compiler is really creative in inventing instructions:
>>>>>
>>>>> (insn 47 46 49 7 (set (reg:SI 68 [ D.1686 ])
>>>>> ? ? ? ? (subreg:SI (plus:SF (reg:SF 159 [ D.1685 ])
>>>>> ? ? ? ? ? ? ? ? (reg:SF 159 [ D.1685 ])) 0)) omp_atomic1.f90:17 247 {*lea_2}
>>>>> ? ? ?(expr_list:REG_DEAD (reg:SF 159 [ D.1685 ])
>>>>> ? ? ? ? (nil)))
>>>>>
>>>>> Really funny.
>>>>
>>>> That's the job of combiner to try all kinds of stuff and it is the
>>>> responsibility of the backend to reject those. ?I think it would be better
>>>> to get back to testing Pmode in the legitimate address hook, perhaps
>>>> allowing ptr_mode too in addition to Pmode (which for -m32/-m64 won't mean
>>>> any change, just for -mx32).
>>>
>>> Actually, there is a bypass in ix86_decompose_address, and this RTX
>>> squeezed through. IMO constructs like this should be rejected in
>>> i_d_a, which effectively only moves Pmode/ptr_mode check here.
>>>
>>> I'm looking into it.
>>
>> The problem was in fact the declaration of no_seg_address_operand
>> predicate that was defined as special predicate and this way ignoring
>> the mode of the operand.
>>
>> Attached patch also includes check for DImode SUBREGS for base
>> register, to eventually save x32 some trouble in future.
>>
>> I'm currently regression testing the patch added to the patch that
>> removed Pmode checks.
>>
>> H.J., can you please test it on x32?
>>
>
> Doing it now.
>

No regressions in GCC testsuite on x32.

Thanks

-- 
H.J.


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