This is the mail archive of the gcc@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: A question about unable to generate reloads


Eric Fisher <joefoxreal@gmail.com> writes:

> Such a problem is difficult to find the reason. But can you give some
> suggestion about the possible matter? This is the information on my
> port. Thanks a lot.
> 
> dp-bit.c: In function `__muldf3':
> dp-bit.c:957: error: unable to generate reloads for:
> (insn 416 415 417 20 dp-bit.c:874 (set (reg:SI 3 $3 [296])
>         (ltu:SI (subreg:SI (reg:DI 12 $12 [294]) 0)
>             (subreg:SI (reg/v:DI 263 [ pp_ll ]) 0))) 74 {sltu_internal} (insn_li
> st 415 (nil))
>     (nil))
> dp-bit.c:957: internal compiler error: in find_reloads, at reload.c:3690

It is possible that for one of your alternatives you have an operand
predicate which accepts, e.g., (subreg:SI (reg:DI) 0) but that
alternative does not have a constraint which matches that operand.  In
general if there an operand is accepted by the predicate and the
pattern condition, there needs to be a letter in the constraints which
can be made to match the operand.

It is also possible that the predicate doesn't match, but there are no
constraint letters which match a register class which gcc can load the
operand into, so gcc has no idea what to do.

Ian


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