Finding "last uses" of an alloca in the function.

Hello, LLVMDev.

Given an alloca in the entry block, I want to find all its uses after which it is used no more. I tried naive approach by recursively iterating over uses(), but faced 2 problems:

  1. I have to take into account “indirect” uses introduced by stores/loads.
  2. In case of loops the use chain I built become circular.

I came up with an idea by tracking current “use path”, but wanted to ask if there is a LLVM analysis for this first.

Thanks in advance.


I think you can sort all basic blocks in SCC order by using SCCIterator. Then you can get a total order of all alloca users.

- Min