Hello,
I am Vishal Chebrolu, a student from India working on “Improve MergeFunctions to incorporate MergeSimilarFunction patches and ThinLTO Support” as a Google Summer of Code project. Thanks to the community for providing feedback to my GSoC proposal. I discussed with my mentors Aditya, JF and improved my previous proposal. We made a few changes and brought up a new plan.
This plan addresses the various activities required to achieve the project outcomes. The major outcome is to provide MergeFunctions with the capability to merge not just identical but similar functions too. This can help in the code-size reduction and gain in compile times if the amount of optimization work to do is reduced. We also consider the issue of maintaining sync of the IR with MergeFunction comparators and prevent mis-compiles.
Here’s the proposal.
https://docs.google.com/document/d/1vGFNoyXugeCWvkm7n66uWnG3eniUAChezVTU4XuVjnM/edit?usp=sharing
Any feedback is highly appreciated!
Thanks 
Regards,
Vishal
Hi,
As a part of benchmarking in my project, I measured the build times and build sizes of MySQL-Server, LLVM, and Qemu using my system compiler(Apple Clang) and LLVM compiler. The results and the details of the checkout hashes and my machine specs are given below. We are thinking of using these projects as benchmarks for measuring build time and size.
System Compiler (Apple Clang)
|
LLVM Compiler
|
|
Build Time
|
Build Size
(on disk)
|
Build Time
|
Build Size
(on disk)
|
- | - | - | - | - |
MySQL-Server
|
real 83m53.688s
user 75m29.850s
sys 5m41.172s
|
941.04MB
|
real 109m39.282s
user 99m43.071s
sys 6m13.283s
|
951.2MB
|
LLVM
|
real 72m0.505s
user 260m44.044s
sys 11m3.760s
|
1.59GB
|
real 97m59.186s
user 356m12.425s
sys 12m28.626s
|
1.57GB
|
Qemu
|
real 6m48.850s
user 5m33.292s
sys 1m2.211s
|
355.6MB
|
real 8m34.970s
user 7m10.967s
sys 1m1.773s
|
361.7MB
|
Apple Clang Version - Apple LLVM version 10.0.1 (clang-1001.0.46.4)
LLVM Compiler Version - clang version 11.0.0
LLVM Compiler Checkout hash - e5bb542362dfbb6c57a597810d740987afbc4202
(Wed May 27 21:13:08 2020)
Project Checkout hashes :
MySQL-Server : 7d10c82196c8e45554f27c00681474a9fb86d137
LLVM : e5bb542362dfbb6c57a597810d740987afbc4202
Qemu : c86274bc2e34295764fb44c2aef3cf29623f9b4b
Machine Specs :
MacBook Air (Early 2015)
OS - macOS Mojave 10.14.6
Processor - 1.6 GHz Intel Core i5
Memory - 8 GB 1600 MHz DDR3
Graphics - Intel HD Graphics 6000 1536 MB
Regards,
Vishal