<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Hello everyone,</div><div class=""><br class=""></div><div class="">Yesterday we open-sourced a tool that helps to explore bitcode in an interactive way using a graph database.</div><div class="">I use it primarily for debugging, but I thought some of you may find it useful for other purposes.</div><div class=""><br class=""></div><div class="">Here are some queries just to give an example of such exploration.</div><div class=""><br class=""></div><div class=""># of functions: 71 019</div><div class=""># of basic blocks: 172 621</div><div class=""># of instructions: 1 212 322</div><div class=""><br class=""></div><div class="">3 biggest functions in the libLLVMCore:</div><div class=""><br class=""></div><div class="">> g.V().hasLabel('function').order().by('instructionCount', desc).valueMap('name', 'instructionCount').limit(3)</div><div class="">_ZN4llvm20UpgradeIntrinsicCallEPNS_8CallInstEPNS_8FunctionE   14033</div><div class="">_ZN4llvm9Intrinsic13getAttributesERNS_11LLVMContextE   8420</div><div class="">_ZL25ShouldUpgradeX86IntrinsicPN4llvm8FunctionENS_9StringRefE   3635</div><div class=""><br class=""></div><div class="">5 most used instructions:</div><div class=""><br class=""></div><div class="">> g.V().hasLabel('instruction').values('opcode').groupCount().order(local).by(values, desc).unfold().limit(5)</div><div class="">call    290 495</div><div class="">load    214 769</div><div class="">store   167 640</div><div class="">alloca  154 922</div><div class="">br      96 848</div><div class=""><br class=""></div><div class="">The tool is available here: <a href="https://github.com/ShiftLeftSecurity/llvm2graphml" class="">https://github.com/ShiftLeftSecurity/llvm2graphml</a></div><div class="">Here is a short write-up on the subject: <a href="https://lowlevelbits.org/exploring-llvm-bitcode-interactively/" class="">https://lowlevelbits.org/exploring-llvm-bitcode-interactively/</a></div><div class=""><br class=""></div><div class="">We would love to hear any feedback and are also very happy to receive contributions!</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Alex.</div></body></html>