GSOC Projects

Hi all,

I have some ideas for GSOC projects using LLVM, where should I post them?

Idea #1: llvm-env

A simple tool, with little or no dependency on LLVM itself, that will investigate a target architecture by probing hardware, software, libraries and compiling and executing code to identify all properties that would be relevant to command-line options, triple settings etc.

The first stage is to build a CFLAGS for Clang that would produce code on the current Host to the identified Target.

The second stage would be to produce a configuration file (that can be used independently of the Host) so that Clang can read it and not need a gazillion of command-line options. Such file should be simple JSON / INI or anything that Vim could change.

Idea #2: LNT perf Monitor

The LNT perf database has some nice features like detect moving average, standard deviations, variations, etc. But the report page give too much emphasis on the individual variation (where noise can be higher than signal).

The first part of the project would be to create an analysis tool that would track moving averages and report:

  • If the current result is higher/lower than the previous moving average by more than (configurable) S standard deviations
  • If the current moving average is more than S standard deviations of the Base run
  • If the last A moving averages are in constant increase/decrease of more than P percent

The second part would be to create a web page which would show all related benchmarks (possibly configurable, like a dashboard) and show the basic statistics with red/yellow/green colour codes to show status and links to more detailed analysis of each benchmark

A possible third part would be to be able to automatically cross reference different builds, so that if you group them by architecture/compiler/number of CPUs, this automated tool would understand that the changes are more common to one particular group.

cheers,
–renato

Here's another project idea:
We really have needed a `clang-config` for a long time; it's absence
makes building programs depending on Clang a pain.

-- Sean Silva

Hi Sean,

Indeed, this is part of the idea. Or rather, the long term idea.

I remember one of the critics of using tablegen for triple defaults and etc
was that it wasn't easily configurable and was just made that way to keep
compatibility with the ancient GCC triples, that were not triples to begin
with. It was then that the idea of having configuration files was born (not
from me), and I think that we should do something in that direction.

But I have spoken to many people, on and off the list, and while all of
them acknowledge that this is an important feature and one that affects us
all, nobody so far (among people and companies) is willing to spend time on
it. What I'm trying to do is to create self-contained projects with clear
goals, so that this can at least progress.

If this is more or less what you had in mind, maybe we could co-mentor
folks for that combined project. :slight_smile:

cheers,
--renato

Hi all,

I have some ideas for GSOC projects using LLVM, where should I post them?

Please add them to llvm-www/OpenProjects.html.

-Chris

Renato,

Actually I wanted to send GSOC email about the open projects tonight.
So, yes - please add them to the corresponding ideas pages.

Ok, I’ve added the LNT statistics project, I think it’s better to add the Clang stuff to http://clang.llvm.org/OpenProjects.html right?

cheers,
–renato

Done, both projects added to the list.

Thanks!
–renato