reload problem:

dimmy diwil@mail.ru
Tue Jan 22 09:45:00 GMT 2002


Thanks Alexandre,

I combined them already into single insn. This works exactly how I want 
it working.
I was just wondering why these difinition do not work when no 
optimization used.
Thank you nayway.
Dmitry.


Alexandre Oliva wrote:

>On Jan 22, 2002, dimmy <diwil@mail.ru> wrote:
>
>>I meant gcc does not look at the condition of nameless insn patterns.
>>
>
>The `condition' of a pattern is that separate test you put in the
>define_insn to decide whether the pattern is available.  GCC does look
>at such conditions whenever it attempts to recognize such a pattern,
>generated by combine or otherwise.  You still seem to be referring to
>constraints, such as `0', `r', etc.
>
>>If it does, why reload fails then to satisfy "0" ?
>>
>
>Because the insn does not accept inputs or outputs in a register.
>
>Perhaps you should try to combine the three subhi3_[123] patterns into
>a single one, such that reload can do its job properly.  Failing at
>that, try to combine the first two patterns, such that reload can use
>registers for the first two operands.  subhi3_2 can't really be fixed
>up by reload, since there's so little reload can do to make the
>pattern match.  In truth, it could allocate stack slots and copy
>memory around so that all inputs and outputs were in the stack, then
>copy stuff back to registers or so, but this would generate poor code,
>and I think reload doesn't have code to do this kind of stuff (i.e.,
>turn arbitrary memory into memory in stack slots; it's generally
>pointless).
>





More information about the Gcc mailing list