[llvm-dev] [GSoC 2016] Capture Tracking Improvements - Mid term report

Scott Egerton via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 17 11:54:42 PDT 2016


This is a more detailed overview of my progress than the weekly reports, 
which can also be found on the mailing list.

Over the past two weeks I have been learning a lot more about capture 
tracking. From this I was able to instrument the current implementation 
in order to identify some of the false positives in it. I was hoping to 
have more definitive results by now than what I currently have, but due 
to some unforeseen issues with the output becoming scrambled I cannot 
provide this just yet. I have now resolved this and plan to have some 
more concrete results within the coming week.

The current algorithm for Capture tracking will look through the uses of 
a pointer. If there are too many uses it will conservatively say that 
the value is captured to avoid taking up too much compile time. If not 
it will then determine whether or not the Value is captured in various 
ways based on its opcode.
However there are some deficiencies with the current implementation. 
Such as the false positives and the fact that it takes rather a lot of 
compile time to run.

I am currently compiling a large piece of code with an instrumented 
version of LLVM in order to identify false positives. I then plan to fix 
all the identified false positives. After this is complete I will be be 
moving onto adding the caching of results to the current design. This 
will make it more efficient. If I complete this, I will work on making 
the analysis more accurate in order to recognize object sub-graphs which 
do not escape.

Please let me know if you have any suggestions.

Many thanks,

More information about the llvm-dev mailing list