<div dir="ltr"><p>Hello,</p><p>I'm using llvm for some experiments and I was wondering<br>if you might be able to give me some more insight on<br>what I'm planning to do. :)</p><p><br>I would like to store some llvm ir to a custom bitcode format.<br>
(Let's say I have 5 different versions of very similar looking<br>bitcode, where the only difference are the enum numbers of each<br>bitcode (see /include/llvm/Bitcode/LLVMBitCodes.h))<br>The bitcode format will depend on the instructions in the ir.<br>
For example when coming across an "add" instruction when converting<br>to bitcode I want to use another bitcode representation then the<br>one the previous instruction used.</p><p>Could I perhaps do this by adjusting the function WriteFunction in<br>
/lib/BitCode/Writer/BitcodeWriter.cpp by analysing every basic<br>block that passes by?<br>Or are there less invasive methods I could use to accomplish my goal?<br>Perpaps passes can be a solution?</p><p><br>The next thing I want to do is interpret my custom bitcode file comprising<br>
of different bitcode representations. I'd for example read in the first<br>bitcode and determine on that which bitcode representation to use for the<br>next instruction. The problem I see doing that is that right now in the<br>
interpreter (lli) bitcode gets read in and converted to llvm ir, before<br>execution even starts. My goal is to convert bitcode to llvm ir as<br>the execution progresses.<br>What are your thoughts on that?</p><p><br>Any help is much appreciated!</p>
<p>Thanks</p></div>