[llvm-dev] A couple ideas for possible GSoC projects
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Tue Mar 22 17:01:01 PDT 2016
----- Original Message -----
> From: "Mehdi Amini via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Philip Reames" <listmail at philipreames.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Tuesday, March 22, 2016 6:53:46 PM
> Subject: Re: [llvm-dev] A couple ideas for possible GSoC projects
>
> Hi Philip,
>
>
> > On Mar 22, 2016, at 4:43 PM, Philip Reames via llvm-dev
> > <llvm-dev at lists.llvm.org> wrote:
> >
> > If there are any students looking for ideas, here a couple of
> > projects you might consider.
> >
> > p.s. Anyone know where in the repo the OpenProjects page is? I'd
> > expected it to be the docs/ folder of the LLVM repo, but it
> > wasn't.
>
> Is it what you're looking for:
> http://llvm.org/svn/llvm-project/www/trunk/OpenProjects.html ?
Seems like an open project is converting this to a .rst ;)
>
> --
> Mehdi
>
> PS: great projects below!
+1
-Hal
>
> >
> > Transactional Memory Optimization
> > Intel recently introduced transactional memory support in hardware.
> > This project would consist of implementing optimizations which are
> > only legal inside a transactional region (e.g. removing release
> > fences since all stores must appear atomically as seen by other
> > threads.) This project will involved a good amount of research
> > into what the hardware guarantees and reasoning about what
> > optimizations that allows. This project is probably best for a
> > student with experience reasoning about concurrency at the
> > hardware level.
> >
> > Thread Local Optimization
> > A compare-and-swap instruction executed against a location which is
> > provably thread local can be converted into a load, test, and
> > store. Many other instructions intended for cross thread
> > interaction have cheaper variants which apply to thread local
> > locations. The key part of this project will be introducing an
> > analysis (probably based on CaptureTracking) to prove memory
> > locations are thread local. This project is probably best for a
> > student with experience reasoning about concurrency in software.
> >
> > Capture Tracking Improvements
> > Our current capture tracking analysis (see CaptureTracking.cpp) is
> > relatively weak and expensive. It could be improved in a number
> > of ways:
> > 1) Review cases where potentially captured is currently returned
> > for possible false positives. There are a couple of known ones
> > which would make good introductory patches.
> > 2) The results could be cached to amortize the cost. This will
> > require careful design to ensure the result is invalidated when
> > appropriate.
> > 3) A more precise analysis could be used to identify object
> > sub-graphs which do not escape (despite links between them).
> > This would be a good project for a student interested in compiler
> > analysis with strong skills in designing appropriate data
> > structures for the task at hand.
> >
> > Dereferenceability Analysis
> > Currently LLVM has a number of places in code which reason about
> > the dereferenceability of memory. This project would involve
> > consolidating all of those into a common set of utilities,
> > reviewing each use for possibly improvements in compile time and
> > precision, and possibly introducing a caching layer (analysis
> > pass) to allow the use of more expensive reasoning.
> >
> > ValueTracking Analysis
> > ValueTracking is a key analysis framework used by LLVM, but it is
> > currently structured as a set of recursive queries with limited
> > depth. There is no caching of queries which can result in
> > substantial losses in compile time. Introducing a caching layer
> > (probably in the form of an Analysis pass) would be a useful
> > improvement. However, there are significant complications around
> > invalidation of the cached information (e.g. simplifyDemandedBits)
> > which will require careful thought and design. This project would
> > probably be best for a student with some existing experience in
> > the LLVM code base.
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-dev
mailing list