[llvm-dev] How to reliably get memory operand size

Hong Hu via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 22 13:21:40 PDT 2019

Hi All,

I'm working on a MIR pass that tries to duplicate memory operation
instructions. For example, if there is a move instruction "movq (%rax),
%rbx", I will insert another MIR instruction before it. For other
instructions, like add, sub, I also insert a mov instruction.

Now my question is, is there any way to obtain the size of the memory
operation? in the given example, the size should be 8, while for "movslq
(%rax), %tbx)", the size should be 4.

I have tried memoperand size, but apparently the memoperand is optional and
is not necessarily always there. So other than parsing the opcode, do we
have any reliably way to get the memory operation size?

Thanks in advance.

Hong Hu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190422/b23e67e5/attachment.html>

More information about the llvm-dev mailing list