GSOC - HLVM Work

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

GSOC - HLVM Work

Gabe McArthur
Hello,

I would also like to apply for Google's Summer of Code, but I am  
having difficulty finding a concrete project idea to tackle.  (Though  
certainly interesting, a new front-end or a compiler optimization  
pass seem like to large as projects for a single summer -- and  
certainly something I couldn't accomplish given my lack of  
familiarity with the code-base.)

I have read the 'projects' pages for both the LLVM and the HLVM, and  
I am quite intrigued by all of the various options (particularly  
those on the HLVM page).  In addition, I feel that work on the HLVM  
would give me some insight into how the LLVM works; however, I also  
understand that the HLVM/LLVM projects are in flux, and some of the  
goals/projects may change.

I would appreciate some direction in going forward: what's more, I  
would like to know what 'need', 'should', or 'want' project could be  
done -- just as long as that project allows me to learn about the  
internals of the compiler and contribute in some substantive way.  
Just to get familiar with the code, I am interested in doing some of  
the work that perhaps sometimes gets forgotten or glossed over  
because others are too busy.

I would like to contribute even if I don't get accepted, so please  
just supply me a direction, and I will gladly go there.  Please feel  
free to send me on cleanups or directions to places in the code that  
are helpful starting places, if you feel that would be helpful.

Sincerely,
-Gabe McArthur

P.S.  Some of my background/interests:
* I have familiarity with Lex, Yacc, and the java equivalents
   Jflex and Cup.  I also have a book on Antlr I'm trying to
   get into.
* This is my first large-scale coding/code reading attempt --
   I found the GCC (and large projects in C in general)
   bewildering after a certain point (I love C for it's simple
   beauty, but despise it when it's over 2,000 lines).
* I am a language junky, so I have:
   * a relatively extensive knowledge of C, Objective-C,
     Java, Ruby, and x86 assembler;
   * a proficient knowledge of C++, D, C#, Python,
     Scheme, and [bleh-ick-yuck] VB; and,
   * a moderate to low knowledge of Common Lisp, Haskell,
     and Erlang (the latter two I am currently learning).
* Have written part of a small, functional compiler as
   part of a university course; I understand the architecture.
* Big fan of GC (written a small collector)
* Intrigued by concurrency features in software/languages,
   particularly message passing/actor models
* Familiarity with XML, YAML, CSS, & JavaScript; some reasonable
   website skills and some slight design skills (I could try
   my hand at a logo)
* I enjoy documentation, so I don't mind writing it.
* At present, I only have a PPC Mac and limited access to
   my wife's Intel Mac (I've been sworn not to play with it);
   I have access to  x86 Linux machines through school and
   FreeBSD through my website, so I might be able to do some
   basic build testing on those platforms.

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: GSOC - HLVM Work

Christopher Lamb
Gabe,

I'm quite new to hacking on LLVM, but I'll give you an idea I had reading some of the recent dev list posts. I think investigating concurrency with regards to LLVM would be very useful (what with multi-cores and all). This could be concurrency in regards to GC, or it could be simply looking at how LLVM can best interface with standard concurrency paradigms (OpenMP, MPI) for the languages it supports. With a GCC 4.2 front-end port of the front-end available what is necessary to enable OpenMP support? Given a FORTRAN front-end based on GCC is being considered how could high performance numeric codes benefit from some aspect of LLVM?

--
Christopher Lamb


On Mar 21, 2007, at 11:22 PM, Gabe McArthur wrote:

Hello,

I would also like to apply for Google's Summer of Code, but I am  
having difficulty finding a concrete project idea to tackle.  (Though  
certainly interesting, a new front-end or a compiler optimization  
pass seem like to large as projects for a single summer -- and  
certainly something I couldn't accomplish given my lack of  
familiarity with the code-base.)

I have read the 'projects' pages for both the LLVM and the HLVM, and  
I am quite intrigued by all of the various options (particularly  
those on the HLVM page).  In addition, I feel that work on the HLVM  
would give me some insight into how the LLVM works; however, I also  
understand that the HLVM/LLVM projects are in flux, and some of the  
goals/projects may change.

I would appreciate some direction in going forward: what's more, I  
would like to know what 'need', 'should', or 'want' project could be  
done -- just as long as that project allows me to learn about the  
internals of the compiler and contribute in some substantive way.   
Just to get familiar with the code, I am interested in doing some of  
the work that perhaps sometimes gets forgotten or glossed over  
because others are too busy.

I would like to contribute even if I don't get accepted, so please  
just supply me a direction, and I will gladly go there.  Please feel  
free to send me on cleanups or directions to places in the code that  
are helpful starting places, if you feel that would be helpful.

Sincerely,
-Gabe McArthur

P.S.  Some of my background/interests:
* I have familiarity with Lex, Yacc, and the java equivalents
   Jflex and Cup.  I also have a book on Antlr I'm trying to
   get into.
* This is my first large-scale coding/code reading attempt --
   I found the GCC (and large projects in C in general)
   bewildering after a certain point (I love C for it's simple
   beauty, but despise it when it's over 2,000 lines).
* I am a language junky, so I have:
   * a relatively extensive knowledge of C, Objective-C,
     Java, Ruby, and x86 assembler;
   * a proficient knowledge of C++, D, C#, Python,
     Scheme, and [bleh-ick-yuck] VB; and,
   * a moderate to low knowledge of Common Lisp, Haskell,
     and Erlang (the latter two I am currently learning).
* Have written part of a small, functional compiler as
   part of a university course; I understand the architecture.
* Big fan of GC (written a small collector)
* Intrigued by concurrency features in software/languages,
   particularly message passing/actor models
* Familiarity with XML, YAML, CSS, & JavaScript; some reasonable
   website skills and some slight design skills (I could try
   my hand at a logo)
* I enjoy documentation, so I don't mind writing it.
* At present, I only have a PPC Mac and limited access to
   my wife's Intel Mac (I've been sworn not to play with it);
   I have access to  x86 Linux machines through school and
   FreeBSD through my website, so I might be able to do some
   basic build testing on those platforms.

_______________________________________________
LLVM Developers mailing list


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: GSOC - HLVM Work

Chris Lattner
On Thu, 22 Mar 2007, Christopher Lamb wrote:
> I'm quite new to hacking on LLVM, but I'll give you an idea I had reading
> some of the recent dev list posts. I think investigating concurrency with
> regards to LLVM would be very useful (what with multi-cores and all). This
> could be concurrency in regards to GC, or it could be simply looking at how
> LLVM can best interface with standard concurrency paradigms (OpenMP, MPI) for
> the languages it supports. With a GCC 4.2 front-end port of the front-end
> available what is necessary to enable OpenMP support? Given a FORTRAN
> front-end based on GCC is being considered how could high performance numeric
> codes benefit from some aspect of LLVM?

Concurrency support would be a very welcome contribution.  I'd suggest
starting with the GCC builtins for atomic operations that the newer GCC's
support.  This is mostly middle-end and codegen work.

-Chris

> On Mar 21, 2007, at 11:22 PM, Gabe McArthur wrote:
>
>>  Hello,
>>
>>  I would also like to apply for Google's Summer of Code, but I am
>>  having difficulty finding a concrete project idea to tackle.  (Though
>>  certainly interesting, a new front-end or a compiler optimization
>>  pass seem like to large as projects for a single summer -- and
>>  certainly something I couldn't accomplish given my lack of
>>  familiarity with the code-base.)
>>
>>  I have read the 'projects' pages for both the LLVM and the HLVM, and
>>  I am quite intrigued by all of the various options (particularly
>>  those on the HLVM page).  In addition, I feel that work on the HLVM
>>  would give me some insight into how the LLVM works; however, I also
>>  understand that the HLVM/LLVM projects are in flux, and some of the
>>  goals/projects may change.
>>
>>  I would appreciate some direction in going forward: what's more, I
>>  would like to know what 'need', 'should', or 'want' project could be
>>  done -- just as long as that project allows me to learn about the
>>  internals of the compiler and contribute in some substantive way.
>>  Just to get familiar with the code, I am interested in doing some of
>>  the work that perhaps sometimes gets forgotten or glossed over
>>  because others are too busy.
>>
>>  I would like to contribute even if I don't get accepted, so please
>>  just supply me a direction, and I will gladly go there.  Please feel
>>  free to send me on cleanups or directions to places in the code that
>>  are helpful starting places, if you feel that would be helpful.
>>
>>  Sincerely,
>>  -Gabe McArthur
>>
>>  P.S.  Some of my background/interests:
>>  * I have familiarity with Lex, Yacc, and the java equivalents
>>     Jflex and Cup.  I also have a book on Antlr I'm trying to
>>     get into.
>>  * This is my first large-scale coding/code reading attempt --
>>     I found the GCC (and large projects in C in general)
>>     bewildering after a certain point (I love C for it's simple
>>     beauty, but despise it when it's over 2,000 lines).
>>  * I am a language junky, so I have:
>>     * a relatively extensive knowledge of C, Objective-C,
>>      Java, Ruby, and x86 assembler;
>>     * a proficient knowledge of C++, D, C#, Python,
>>      Scheme, and [bleh-ick-yuck] VB; and,
>>     * a moderate to low knowledge of Common Lisp, Haskell,
>>      and Erlang (the latter two I am currently learning).
>>  * Have written part of a small, functional compiler as
>>    part of a university course; I understand the architecture.
>>  * Big fan of GC (written a small collector)
>>  * Intrigued by concurrency features in software/languages,
>>    particularly message passing/actor models
>>  * Familiarity with XML, YAML, CSS, & JavaScript; some reasonable
>>     website skills and some slight design skills (I could try
>>     my hand at a logo)
>>  * I enjoy documentation, so I don't mind writing it.
>>  * At present, I only have a PPC Mac and limited access to
>>     my wife's Intel Mac (I've been sworn not to play with it);
>>     I have access to  x86 Linux machines through school and
>>     FreeBSD through my website, so I might be able to do some
>>     basic build testing on those platforms.
>>
>>  _______________________________________________
>>  LLVM Developers mailing list
>>  [hidden email]         http://llvm.cs.uiuc.edu
>>  http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>

-Chris

--
http://nondot.org/sabre/
http://llvm.org/
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: GSOC - HLVM Work

Torvald Riegel-2
In reply to this post by Christopher Lamb
On Thursday 22 March 2007 06:25, Christopher Lamb wrote:

> I'm quite new to hacking on LLVM, but I'll give you an idea I had
> reading some of the recent dev list posts. I think investigating
> concurrency with regards to LLVM would be very useful (what with
> multi-cores and all). This could be concurrency in regards to GC, or
> it could be simply looking at how LLVM can best interface with
> standard concurrency paradigms (OpenMP, MPI) for the languages it
> supports. With a GCC 4.2 front-end port of the front-end available
> what is necessary to enable OpenMP support? Given a FORTRAN front-end
> based on GCC is being considered how could high performance numeric
> codes benefit from some aspect of LLVM?

Really tackling concurrency issues is probably too much work for a summer
unless you are already familiar with concurrent programming. You could try to
produce good code for an existing runtime system, though. With Software
Transactional Memory, for example, you can get large speedups by just
avoiding loads/stores from/to main memory, replacing upgrades from read
access to write access with a single write access, etc. Most of that requires
reasoning only in the sequential domain.


Torvald
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev