[LLVMdev] Loop exit condition analysis
eli.friedman at gmail.com
Tue Dec 20 14:54:16 PST 2011
On Mon, Dec 19, 2011 at 10:13 PM, Hanfeng Qin <hanfengtsin at gmail.com> wrote:
> Hi all,
> I am doing loop exit condition analysis. As the following sample code
> segments demonstrated,
> int *c = &a;
> while (*c == 0);
> I want to decide which variables are related to ending this spin-loop. E.g.,
> in above sample, c is the direct variable while a is an indirect one. Does
> LLVM provide any existing analysis tools or APIs I can leverage?
> I am new to compiler optimization. Wish any body can give some suggestions.
Well, first off, the given code isn't really a great example: LLVM
will hoist the load out of the loop, and it will never exit. I'll
assume you meant to write "volatile int *c".
For loop analysis in general, LLVM has an analysis called LoopInfo to
find loops and compute some properties of them. Your question isn't
really specific enough to give a more detailed answer.
More information about the llvm-dev