[LLVMdev] GCC3.5 tree-ssa

Chris Lattner sabre at nondot.org
Tue Dec 23 19:53:01 PST 2003


On Wed, 24 Dec 2003, yue wrote:

> why doesn't llvm transfer bytecode to RTL form? I mean the
> cross-platform compile in GCC. Could LLVM do that?

Sure, it would be a realtively straight-forward (but large and hard to get
right, if you're not a GCC expert), project to build an LLVM front-end for
GCC.  This would allow you to effectively use LLVM as a mid-level
representation for GCC, and would allow you to use all of the GCC
back-ends with LLVM.

However, note that LLVM already does have a C backend, which allows you to
interface the LLVM optimizer to GCC or any other platform compiler.  This
effectively gives you most of the advantages of a real "RTL backend", with
the added advantage that we support the Intel, Sun, SGI, etc compilers as
well (at least in theory, we have only tried compiling the CBE output with
the GCC and Intel compilers).  Also "C" is a very stable interface
language, where the RTL interfaces and APIs are constantly changing.  The
one advantage an RTL backend would have over the C backend is speed of
compilation.

> maybe tree-ssa also create the representation with a testual format if
> needed. is it very difficalt? I want to know.

There are _very strong_ political reasons that will prevent this from
happening any time in the near future.  I suggest that you ask on the GCC
list if you want more details.  All tree-ssa supports are some debugging
dumps, which do not contain all of the information needed for compilation.

> BWT: if we port pthread library to llvm, what do we consider at first?

I'm not sure exactly what you mean.  If it's written in C, you should be
able to just compile it with LLVM as you would any other program or
library.  Have you run into a problem or bug?

-Chris


> Chris Lattner wrote:
>
> >On Wed, 24 Dec 2003, yue wrote:
> >
> >
> >>what difference is between gcc3.5 tree-ssa and llvm?
> >>
> >>
> >
> >They are completely different projects.  The short version is that LLVM is
> >more mature and stable than tree-ssa is, LLVM supports interprocedural and
> >runtime optimization, and LLVM has a well defined intermediate
> >representation with a textual format.  On the other hand tree-ssa may be a
> >part of GCC 3.5 someday once it has stabilized and enough bugs have been
> >fixed.  Oh, LLVM is written in C++ and tree-ssa is written in C.
> >
> >If there is something more specific you want to know, please ask.  It's
> >very much the difference between apples and oranges.
> >
> >-Chris
> >
> >
> >
>
>

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/





More information about the llvm-dev mailing list