<div dir="auto">Replicating what clang -emit-llvm does sound like the better way to do it.<div dir="auto"><br></div><div dir="auto">I was looking under IRPrintingPasses but couldn't find anything specific that would allow me to print out say a std::vector<llvm:: Instruction*>.</div><div dir="auto"><br></div><div dir="auto">What do you think would be the easiest way to do this? Can I do some hack where I can get away without writing my own llvm pass? I'm not even sure what the right question to ask is, since this is the first time I'm working with llvm.</div><div dir="auto"><br></div><div dir="auto">Thanks!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 20 Jul, 2020, 10:37 pm David Blaikie, <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">if you're trying to serialize LLVM IR and read it back again later -<br>
yeah, probably best to use th binary searialization rather than the<br>
textual. If I were doing this I'd try building something using clang<br>
with -emit-llvm (that'll produce LLVM IR bitcode in the .o file) and<br>
debug that to see which APIs are used to do that.<br>
<br>
On Mon, Jul 20, 2020 at 3:19 AM Yugesh Kothari via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> I am working on a project where I need to get a list of llvm Functions that were called during an execution (for futher analysis).<br>
> To do this I have maintained a vector<llvm:: Function*> which I print out to a .ll file at the end. However this takes a lot of time since the number of call Instructions is HUGE.<br>
> I feel that the bottleneck is the conversion from llvm:: Function to std::string<br>
><br>
> How can I speed this up?<br>
><br>
> I don't necessarily need it in .ll format, if there is a way to dump the entire llvm::Function object as a byte stream to a .dat file and read it back as objects in a separate script, that would work too. I'm not sure how to do this (tried few things didn't work), any help would be appreciated!<br>
><br>
> Thanks!<br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>