[llvm-dev] Determining the order of instructions in BB (original) (raw)

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 7 09:50:48 PST 2019


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>



More information about the llvm-dev mailing list