[GSoC 2016] Introduction of "Improvement of vectorization process in Polly"

Dear LLVM contributors,

I am a first year P.h.D. student at Ural Federal University majoring
in "Mathematical modelling, numerical methods, and software
complexes". At the moment my research focuses on a machine-specific
performance modelling and polyhedral optimizations.

During the Google Summer of Code 2016 I will work on the "Improvement
of vectorization process in Polly" project, which description can be
found on the following link [1].

I am planning to do the following during the first five weeks:

1. Understand why we attain only 73.97% with our current manual
implementation of Matrix-Matrix Multiplication [2]. According to [3],
we can expect 90% of the turbo boost peak of the processor with the C
version.
2. Implement determination of statements that contain only matrix
multiplication.
3. Implement tilings and interchanges of specific loops based on the
algorithm presented in [4]. At this step all necessary parameters of a
target architecture (e.g. sizes of cache lines) could be passed as
command line parameters.

I would be very grateful for your comments, feedback and ideas about
the plan and the whole project.

Information about updates of the project after reaching the milestones
will be published in my blog, which can be found on the following link
[5].

Refs.:
[1] - https://docs.google.com/document/d/1lXYvyGP3mME5QRc912TXtjdqf7-1k_s1-xVl7JgeTpw/edit?usp=sharing
[2] - https://drive.google.com/file/d/0B2Wloo-931AoUUU1T2ZLTDFHNFk/view
[3] - http://wiki.cs.utexas.edu/rvdg/HowToOptimizeGemm
[4] - http://www.cs.utexas.edu/users/flame/pubs/TOMS-BLIS-Analytical.pdf
[5] - http://romangareev.blogspot.ru