[GSOC 2018] Improve function attribute inference

Hi Devs,

I am a PhD student at Indiana University. I am interested in working on the project on function attribute inference. My current research direction involves runtime binary optimization using JIT compilation from a lifted LLVM IR. I am hoping various runtime information coupled with static analysis on the IR can provide better avenues for runtime code JITTIng (akin to PGO).

Anyway I think the project on function attribute inference aligns with my current work in that it would help me to get more familiar with static analysis passes in LLVM and provide an opportunity for me to do a useful contribution to the LLVM community.


Eric: thanks for bringing this to my attention; I somehow missed this email.

Hi Buddhika,

Thanks for getting in touch and for your interest.
Please submit an application whenever the registration period opens and let me/us know if you have any question regarding the project and/or GSoC.


Hi Nuno,

Thanks. Appreciate if I can get some specific pointers to related code or documentation that I could start looking to to get myself oriented. I just started looking to in to lib/Analysis a bit.



Definitely have a look at the current analyses:
- llvm/Transforms/IPO/FunctionAttrs.cpp
- llvm/Transforms/IPO/InferFunctionAttrs.cpp

Also, study the semantics of these attributes, starting with the docs: http://llvm.org/docs/LangRef.html#function-attributes
Also, grep the LLVM sources for test cases that use the attributes to see examples on how they are used for optimization.
Finally, have a look at the email thread linked from the open projects page. Oh, and a refresher on abstract interpretation / static analysis won't hurt either.

Of course, feel free to ask questions about any of these things.


Awesome, thanks! This would be helpful.

Hi All,

I have shared the draft now. Please check and comment if you get time.