About LLVM

Hi all,

I am a new user to LLVM and trying to figure out if this is what I really want to complete my thesis work.

I want to add a pointer analysis phase to compiler optimization. This analysis will take profile information into account.
My analysis requires to analyse a single statement at a time and then I also want to perform some code duplication to finally perform the optimization.

Finally I would like to compare the results with and without my pass on benchmark standards.

I was just wondering if I can do all this with LLVM. I have very short period for my thesis and I have to implement and get the results. So I will be highly obliged if anyone of you can help me out.

Thanks in advance.

regards,
Ambika

I am a new user to LLVM and trying to figure out if this is what I
really want to complete my thesis work.

Yes. :slight_smile:

I want to add a pointer analysis phase to compiler optimization. This
analysis will take profile information into account.

Ok. LLVM has profiling. What kind of profile information do you need?

My analysis requires to analyse a single statement at a time and then I
also want to perform some code duplication to finally perform the
optimization.

Define "statement." Do you mean source-level statement? the LLVM IR works in
terms of instructions. Groups of instructions can be specified in a DAG of
sorts or they can be fissioned into individual instructions that each write to
a temporary virtual register.

There is no high-level notion of a statement or control structure. If you
need that you'll have to build it. No other open source C/C++ compiler
infrastructure provides that either, AFAIK.

Finally I would like to compare the results with and without my pass on
benchmark standards.

This is trivial with LLVM.

I was just wondering if I can do all this with LLVM. I have very short
period for my thesis and I have to implement and get the results. So I
will be highly obliged if anyone of you can help me out.

What's "very short?" Doing anything substantial with aliasing/pointer
analysis is not "very short" by definition.

                              -Dave