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 to write a define_peephole2 that uses custom registers innios2


Liu Haibin wrote:
to "c". However, it seems very difficult here. The old insn patterns
are all general registers, but the new insn patterns are defined as
custom registers.

The peephole pass does not do register allocation. So you can't use it to magically change "r" registers to "c" registers. What you are trying to do here won't work.


Can I use something like
operands[0] = gen_rtx_REG (DImode, REGNO(operands[0]));
here to force all the operands to be a different kind? Or how can I
define the peephole?

If you are willing and able to do your own register allocation, then you might be able to get this to work, but this is very unlikely to be a good solution.


You probably shouldn't be using peepholes here. You probably should be generating the insns you want during initial RTL generation.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com



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