Thanks to all the gcc developers!

I am working on a Linux distribution which compiles all binaries statically at 
run-time with WHOPR. I hope to:

  = Have everything running insanely fast. I did some testing with a couple 
programs using gcc 4.5 with WHOPR and other new optimizations, and compared to 
a few minor versions back, the binaries ran insanely fast, when they worked. 
There were some problems...
  = Create a mostly architecture-independent distribution. I want the kernel, 
some of binutils, and gcc to be the only architecture-dependent components of 
the distribution. Compiled binaries would be cached.
  = Not have a general purpose distribution, rather one suited towards 
high-performance computing and servers, which only run a limited set of 
pre-planned applications.

I have some questions for the gcc developers:

  ^ Do you have any tips, tricks, techniques, comments, or anything else to say 
about this? Is it do-able at this point, or should I wait (or help) with future 
releases? I started this with gcc 4.5, and there were some problems at that 
point in time.
  ^ Is there a way to compile code so that architecture-independent GIMPLE is 
produced? I have been using no optimization at all for my GIMPLE compiles, and 
it seems to me that it would produce architecture-independent GIMPLE. Would the 
final compile/link be possible for all x86's? Would optimizations at this point 
work as well as if they were done first? Would the same GIMPLE be able to be 
compiled/linked for, say, an ARM processor?
  ^ It looks like GIMPLE is expected to change per version of gcc. Is there a 
time in the future when GIMPLE will be pretty stable?
  ^ It looks like there is some startup code in libgcc that is, and has to be, 
architecture-dependent. Are the other parts architecture-independent? Has 
anyone tried compiling libgcc statically with -flto, and doing a WHOPR link 
against it to produce a static binary?
  ^ Is there a simple way to strip everything but GIMPLE from object files? I 
imagine that objcopy could do it. In the brief time I looked at it, the GIMPLE 
section layout looked pretty complicated.
  ^ Is there a way to compile gcc with only the GIMPLE frontend? It shows up in 
the configure script, could I configure with --enable-languages=gimple?

Also, I had a couple other general development questions:

  ~ LLVM appears to be able to use the gcc C compiler frontend and the LLVM 
backend. Has anyone been working on more integration between LLVM and gcc. It 
would be interesting to use the LLVM backend to optimize GIMPLE, then pass it 
back to gcc again for more optimization. Interesting in which way I do not 
know. Is there any possible or theoretical advantage to doing this?
  ~ Has anyone been working on GPU support, automatically-utilized or otherwise?
  ~ Linaro gcc has a lot of good stuff implemented for ARM. Is Linaro gcc work 
being merged into gcc? I ask, because this brings back egcs memories.
  ~ I would like to play a game, where did the -fwhopr option go? I'm using 
-flto -fwhole-program now, is this the same? I still like -fwhopr, please bring 
it back!

Rob

Reply via email to