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: how can I split 1 mov insn into 2 sub_mov and 1 combine?


Liu <proljc@gmail.com> writes:

>       if (GET_MODE (dest) == V32QImode)
>         tmp_reg = gen_reg_rtx (V32QImode);

> vpaddd.c:33:1: internal compiler error: in gen_reg_rtx, at emit-rtl.c:863
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
>
> emit-rtl.c:863 is  gcc_assert (can_create_pseudo_p ());

You can only call gen_reg_rtx if can_create_pseudo_p returns true.  It
will return false during and after register allocation.  Your code is
being called at that time somehow, probably during reload.  You have to
either ensure that that does not happen, or, more likely, you have to
arrange to use an existing register rather than create a new one.  For
example, look for uses of can_create_pseudo_p in mips.c.

Ian


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