[LLVMdev] Pseudo load and store instructions for AArch64

Sergey Dmitrouk sdmitrouk at accesssoftek.com
Fri Aug 22 05:44:40 PDT 2014


Hi Renato,

> > I'm trying to add pseudo 64-bit load and store instructions for AArch64, which
> > should have latencies set to "1" while being otherwise exactly the same as
> > normal load and store instructions.
> 
> Can I ask why would you need that?

This is the only way I found to stop Machine Instruction Scheduler from
reordering load and store instructions.  I asked on this specific topic
several times before, but no one answered.  The following approaches
didn't work in this case:

 - different kind of chaining;
 - gluing;
 - single pseudo instruction for load and store as it needs temporary
   register, but such pseudos are expanded after RA.

It's needed to make code of inlined memcpy() more efficient.

> Looks like there's specific knowledge about the types and instructions
> codes in switches midway through that is not recognizing your new
> pseudos.
>
> One way to find them out is to grep for the instruction codes yours is
> similar to, and then see if you need to add your pseudos

Thanks, I'll try that.

Regards,
Sergey



More information about the llvm-dev mailing list