[llvm-dev] Generate Register Indirect mode instruction

Friedman, Eli via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 12 15:45:16 PDT 2016


On 10/12/2016 3:15 PM, Alex Bradley wrote:
>
> Yes the result goes into memory. But the *address* of that destination 
> memory location also needs to be loaded first into a register.
>

Your architecture has a single instruction for the following operation?

define void @foo(i32 **%a, i32**%b) {
entry:
   %l1 = load i32*, i32** %a, align 4
   %l2 = load i32, i32* %l1, align 4
   %l3 = load i32*, i32** %b, align 4
   %l4 = load i32, i32* %l3, align 4
   %add = add i32 %l2, %l4
   store i32 %add, i32* %l1, align 4
   ret void
}

In theory, it should be possible to match this, at least using C++ 
code.  There isn't any other architecture like that in LLVM, though, so 
I'm not sure how that would work out in practice.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161012/f5af4513/attachment.html>


More information about the llvm-dev mailing list