[llvm-dev] Remove some x86-64 addressing modes of IMUL and ADD instructions

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 10 10:13:08 PDT 2018


Did you also remove IMUL32rm and IMUL32rmi? The example assembly you
provides look to be 32-bit multiplies since they use %r15d and %r10d.

~Craig


On Mon, Sep 10, 2018 at 10:01 AM Abhinav Jangda via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hello everyone,
>
> For some project, I need to remove some addressing modes of operands in
> IMUL and ADD instructions. More specifically, I do not want LLVM to
> generate instruction like:
>
> *imull    (%r9,%r11), %r15d*
>
> Instead I will like LLVM to generate code which first loads address into a
> register and then multiply it, i.e., something like:
>
> *movl (%r9, %r11), %r10d*
> *imull %r10d, %r15d*
>
> I have remove all *IMUL64rm *and *IMUL64rmi* instructions in
> Target/X86/X86InstrArithmetic.td, but still *imull* instruction with
> memory operand is generated. Can anyone please point me to the write place?
> I will prefer a solution related to llvm6.0, however, solution for any
> llvm version is welcome.
>
> Thank You,
>
> Abhinav Jangda
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180910/adc8d64a/attachment.html>


More information about the llvm-dev mailing list