Johannes Doerfert via llvm-dev
2021-Jun-02 02:13 UTC
[llvm-dev] Adding instructions in pass directly from string containing IR
Hi Przemek, I doubt that such functionality exists right now. The main problem I see is the name matching to embed it with other code. If the new code is not connected, I'd recommend the pass to read in an IR file with a function in it, link it into the module, and insert a call wherever you want to "paste" the instructions. Much cleaner than dealing with strings, IMHO. ~ Johannes On 6/1/21 12:16 PM, Przemyslaw Ossowski via llvm-dev wrote:> Hello, > > > > I would like to add a pass which modifies IR by insertion set of IR > instructions somewhere in the middle of the basicblock, > > like example below: > > > > %address = call i32* @llvm.target_intrinsic.getaddress() > > %value = load i32, i32* %address > > %addvalue = add nsw i32 %value, 10 > > store i32 %addvalue, i32* %address > > > > Is there any function available which would allow for parsing the string > (containing set of instructions) and generating instructions automatically > instead of manually calling functions creating instructions from IRBuilder? > > ...at least for simple set of basic instructions > > > Regards, > > Przemek > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Przemyslaw Ossowski via llvm-dev
2021-Jun-07 15:51 UTC
[llvm-dev] Adding instructions in pass directly from string containing IR
Thank you Johannes for your suggestion. In case a call to the function which would contain the code I would like to paste is inserted into another function, then is it still possible to simply inline the code? I would like to avoid calling the function with the "pasted" code. I assume there is a pass which inlines functions which should be executed later. Thanks, Przemek On Wed, Jun 2, 2021 at 4:13 AM Johannes Doerfert <johannesdoerfert at gmail.com> wrote:> Hi Przemek, > > I doubt that such functionality exists right now. The main > problem I see is the name matching to embed it with other code. > If the new code is not connected, I'd recommend the pass to > read in an IR file with a function in it, link it into the module, > and insert a call wherever you want to "paste" the instructions. > > Much cleaner than dealing with strings, IMHO. > > ~ Johannes > > > On 6/1/21 12:16 PM, Przemyslaw Ossowski via llvm-dev wrote: > > Hello, > > > > > > > > I would like to add a pass which modifies IR by insertion set of IR > > instructions somewhere in the middle of the basicblock, > > > > like example below: > > > > > > > > %address = call i32* @llvm.target_intrinsic.getaddress() > > > > %value = load i32, i32* %address > > > > %addvalue = add nsw i32 %value, 10 > > > > store i32 %addvalue, i32* %address > > > > > > > > Is there any function available which would allow for parsing the string > > (containing set of instructions) and generating instructions > automatically > > instead of manually calling functions creating instructions from > IRBuilder? > > > > ...at least for simple set of basic instructions > > > > > > Regards, > > > > Przemek > > > > > > _______________________________________________ > > LLVM Developers mailing list > > llvm-dev at lists.llvm.org > > https://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/20210607/af1ab183/attachment.html>