Alex Bradley via llvm-dev
2016-Oct-14 07:30 UTC
[llvm-dev] Generate Register Indirect mode instruction
> If I understand correctly: > > %v1 = load i32, i32* %a > %v2 = load i32, i32* %b > %v3 = add i32 %v1, %v2 > store i32 %v3, i32* %c > > maps to (using invented mnemonics): > > ASSIGN R0, %a > ASSIGN R1, %b > ASSIGN R2, %c > ADD *R2, *R0, *R1 > > I.e. pattern > (store %c, (add (load %a), (load %b))) > becomes > (ADD (ASSIGN R2, %c), (ASSIGN R0, %a), (ASSIGN R1, %b)) >Yes. Exactly. Regards, Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161014/ec8bee4f/attachment.html>
Alex Bradley via llvm-dev
2016-Oct-17 21:45 UTC
[llvm-dev] Generate Register Indirect mode instruction
Gentle Ping !! I would appreciate any help on this. I want to generate following as described by Krzysztof : %v1 = load i32, i32* %a %v2 = load i32, i32* %b %v3 = add i32 %v1, %v2 store i32 %v3, i32* %c maps to (using invented mnemonics): ASSIGN R0, %a ASSIGN R1, %b ASSIGN R2, %c ADD *R2, *R0, *R1 Thanks. Regards, Alex On 14 Oct 2016 1:00 p.m., "Alex Bradley" <alexbradley.bqc at gmail.com> wrote:> > > If I understand correctly: > > > > %v1 = load i32, i32* %a > > %v2 = load i32, i32* %b > > %v3 = add i32 %v1, %v2 > > store i32 %v3, i32* %c > > > > maps to (using invented mnemonics): > > > > ASSIGN R0, %a > > ASSIGN R1, %b > > ASSIGN R2, %c > > ADD *R2, *R0, *R1 > > > > I.e. pattern > > (store %c, (add (load %a), (load %b))) > > becomes > > (ADD (ASSIGN R2, %c), (ASSIGN R0, %a), (ASSIGN R1, %b)) > > > > Yes. Exactly. > > Regards, > Alex >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161017/0049598e/attachment.html>
Ryan Taylor via llvm-dev
2016-Oct-17 21:47 UTC
[llvm-dev] Generate Register Indirect mode instruction
I was under the impression his answer was correct from your reply, no? On Oct 17, 2016 17:45, "Alex Bradley via llvm-dev" <llvm-dev at lists.llvm.org> wrote:> Gentle Ping !! > > I would appreciate any help on this. I want to generate following as > described by Krzysztof : > > %v1 = load i32, i32* %a > %v2 = load i32, i32* %b > %v3 = add i32 %v1, %v2 > store i32 %v3, i32* %c > > maps to (using invented mnemonics): > > ASSIGN R0, %a > ASSIGN R1, %b > ASSIGN R2, %c > ADD *R2, *R0, *R1 > > Thanks. > > Regards, > Alex > > On 14 Oct 2016 1:00 p.m., "Alex Bradley" <alexbradley.bqc at gmail.com> > wrote: > >> >> > If I understand correctly: >> > >> > %v1 = load i32, i32* %a >> > %v2 = load i32, i32* %b >> > %v3 = add i32 %v1, %v2 >> > store i32 %v3, i32* %c >> > >> > maps to (using invented mnemonics): >> > >> > ASSIGN R0, %a >> > ASSIGN R1, %b >> > ASSIGN R2, %c >> > ADD *R2, *R0, *R1 >> > >> > I.e. pattern >> > (store %c, (add (load %a), (load %b))) >> > becomes >> > (ADD (ASSIGN R2, %c), (ASSIGN R0, %a), (ASSIGN R1, %b)) >> > >> >> Yes. Exactly. >> >> Regards, >> Alex >> > > _______________________________________________ > 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/20161017/68d9b266/attachment.html>