Paweł Bylica via llvm-dev
2019-Feb-07 17:45 UTC
[llvm-dev] Determining the order of instructions in BB
Hi, Having two instructions in the same basic block is there a way to determine in what order they are in the basic block? // Paweł -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190207/67a0e2fb/attachment.html>
Reid Kleckner via llvm-dev
2019-Feb-07 17:50 UTC
[llvm-dev] Determining the order of instructions in BB
There are a few ways to do this, but in general there is not an O(1) way to do this if your transform is doing arbitrary instruction insertion and removal. The basic approach is to iterate the list, so this is O(bb length). `DominatorTree::dominates(Instruction*,Instruction*)` will do this for you. The next is to use OrderedBasicBlock (or OrderedInstructions for a whole function) to cache the instruction ordering. Finally, I have this patch that I haven't found time to work on which caches the numbering in Instruction itself: https://reviews.llvm.org/D51664 Just needs a few days of work to make it happen. On Thu, Feb 7, 2019 at 9:46 AM Paweł Bylica via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi, > > Having two instructions in the same basic block is there a way to > determine in what order they are in the basic block? > > // Paweł > _______________________________________________ > 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/20190207/69a49990/attachment.html>