Update on CIL branch

Andrea Carlo ORNSTEIN andrea.ornstein@st.com
Fri Jun 13 12:42:00 GMT 2008


Hi,

I wanted to give a small update on what has been done on the CLI branch 
(gcc svn repository branches/st) before the summit.
I will not be able to be there,
have fun :)

What we have done lately
- added binutils for cil as simple wrappers on DotGnu binutils
  simplifies build of a toolchain
  instructions on how to build the toolchain (binutils +gcc), link at 
the end of the mail
- libc/libm
   we developed an implementation of libc/libm on top of mscorlib that 
allows most of c applications to be compiled and run on any CIL Virtual 
Machine
   A lot of users asked for it since previously the lack of an 
implementation of the standard library prevented the use of the code 
generated in a lot of real world applications,
   all C applications depends in a way or another from libc
   we called it libstd and now it is built just after the compiler
- install in the bin directory also 2 wrappers on top on mono and ilrun 
to execute the generated applications
  (they just set correctly the libraries search PATH)

What are we doing now:
- we are defining an internal IR of the CLI Backend that is close to the 
CLI IR,
  on wich we can do some final optimizations
  mostly optimizations on how the evaluation stack is handled, taking 
advantage of its semantic (implicit conversions, keep values on the 
stack instead of using local variables)
- we are developing a new set of binutils to handle CLI object files
   Now we are using binutils from DotGNU project.
   For the use in our context they had few drawbacks:
       - a special assembler must be used, the objects files (.o) are 
not standard CIL assemblies and need special tools to be manipulated
       - they used CIL reflection to do the initialization of global 
variables,
       - it did not support a static library format and
      - there where some errors linking varargs functions
   We are developing a new set of binutils that resolve all this issues. 
- update/merge with trunk

I added a small README file that explains how to build and install gcc 
with the CLI Backend and CLI binutils.
You can find it in the ST branch 
(http://gcc.gnu.org/viewcvs/branches/st/README?view=markup)

Andrea C. Ornstein



More information about the Gcc mailing list