Re: Thoughts on LLVM and LTO

2005-11-27 Thread Daniel Berlin
On Sun, 2005-11-27 at 11:58 -0800, Devang Patel wrote: With our limited resources, we cannot really afford to go off on a multi-year tangent nurturing and growing a new technology just to add a new feature. What makes you think implementing LTO from scratch is different here?

Re: Thoughts on LLVM and LTO

2005-11-27 Thread Chris Lattner
On Sun, 27 Nov 2005, Daniel Berlin wrote: On Sun, 2005-11-27 at 11:58 -0800, Devang Patel wrote: What makes you think implementing LTO from scratch is different here? Here are the questions for LLVM as well as LTO folks. (To be fair, 1) Documentation How well is the documentation so that

Re: Thoughts on LLVM and LTO

2005-11-27 Thread Chris Lattner
On Wed, 23 Nov 2005, Ian Lance Taylor wrote: Chris Lattner [EMAIL PROTECTED] writes: You will need to get University of Illinois and past/present LLVM developers to assign the copyright over to the FSF. Yes, you've claimed it's easy, but it needs to be done. Otherwise, we are in limbo. We

Re: Thoughts on LLVM and LTO

2005-11-25 Thread Rafael EspĂ­ndola
On 11/22/05, Scott Robert Ladd [EMAIL PROTECTED] wrote: I've been quietly watching the conversation, largely as an interested user as opposed to a GCC developer. One of my concerns lies with: I have worked on some toy front ends, so I think that I am a kind of a user also :) GENERIC -

Re: Thoughts on LLVM and LTO

2005-11-25 Thread Diego Novillo
On Tuesday 22 November 2005 12:53, Scott Robert Ladd wrote: GENERIC - GIMPLE - LLVM - GIMPLE - RTL That design adds two phases (GIMPLE - LLVM, LLVM - GIMPLE) here -- perhaps simple one, perhaps not. The line is very straight, but adding two more segments make me wonder if we're

Re: Thoughts on LLVM and LTO

2005-11-24 Thread Scott Robert Ladd
I've been quietly watching the conversation, largely as an interested user as opposed to a GCC developer. One of my concerns lies with: GENERIC - GIMPLE - LLVM - GIMPLE - RTL That design adds two phases (GIMPLE - LLVM, LLVM - GIMPLE) here -- perhaps simple one, perhaps not. The line

Re: Thoughts on LLVM and LTO

2005-11-23 Thread Diego Novillo
On Tuesday 22 November 2005 11:45, Daniel Berlin wrote: Another minor nit is performance. Judging by SPEC, LLVM has some performance problems. It's very good for floating point (a 9% advantage over GCC), but GCC has a 24% advantage over LLVM 1.2 in integer code. I'm sure that is

Re: Thoughts on LLVM and LTO

2005-11-23 Thread Diego Novillo
On Tuesday 22 November 2005 13:17, Benjamin Kosnik wrote: What about compile-time performance? Well, it's hard to say, I have not really used LLVM extensively. The only real data I have is compile times for SPECint: SPECint build times (secs) -O2

Re: Thoughts on LLVM and LTO

2005-11-23 Thread Chris Lattner
On Wed, 23 Nov 2005, Diego Novillo wrote: On Tuesday 22 November 2005 13:17, Benjamin Kosnik wrote: What about compile-time performance? Well, it's hard to say, I have not really used LLVM extensively. The only real data I have is compile times for SPECint: SPECint build times

Re: Thoughts on LLVM and LTO

2005-11-23 Thread Diego Novillo
On Wednesday 23 November 2005 13:13, Chris Lattner wrote: I assume you're timing a release build here, not a debug build. Yes, a release build. In any case, the LLVM time above includes the following: [ ... ] Well, it seems that it's too early to test LLVM, then. It's both slow and

Thoughts on LLVM and LTO

2005-11-22 Thread Diego Novillo
First off, regardless of what direction we choose to go, I think we are in a great position. Finally, GCC will have all the obvious and standard technology that one reads in textbooks. Not long ago, GCC didn't even build a flowgraph, and now here we are deciding what IPA technology we want

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Jacobowitz
On Tue, Nov 22, 2005 at 11:20:02AM -0500, Diego Novillo wrote: If we choose LLVM, I have more questions than ideas, take these thoughts as very preliminary based on incomplete information: The initial impression I get is that LLVM involves starting from scratch. I don't quite agree that

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Rafael EspĂ­ndola
The initial impression I get is that LLVM involves starting from scratch. I don't quite agree that this is necessary. One of the engineering challenges we need to tackle is the requirement of keeping a fully functional compiler *while* we improve its architecture. I don't think that it

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Berlin
GVM, TU combination and all the associated slimming down of our IR data structures will be quite a bit of work. This is also needed for other projects I believe it is more work than porting improvements to LLVM and making LLVM usable. Significantly more work. We would keep a fully

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Steven Bosscher
On Tuesday 22 November 2005 17:20, Diego Novillo wrote: The initial impression I get is that LLVM involves starting from scratch. I thought it would basically only replace the GIMPLE parts of the compiler. That is, FE -- GENERIC -- LLVM-- RTL -- asm (trees)

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Berlin
On Tue, 2005-11-22 at 17:58 +0100, Steven Bosscher wrote: On Tuesday 22 November 2005 17:20, Diego Novillo wrote: The initial impression I get is that LLVM involves starting from scratch. I thought it would basically only replace the GIMPLE parts of the compiler. That is, FE--

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Scott Robert Ladd
Daniel Berlin wrote: 2. It natively supports Alpha, Sparc, IA64, X86, and PowerPC. An LLVM-RTL converter is not that hard, which simply removes the entire argument anyway. I see the phrase doing X is not that hard in response to many questions about this proposal. Now, I'm arguing the

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Benjamin Kosnik
First off, regardless of what direction we choose to go, I think we are in a great position. Finally, GCC will have all the obvious and standard technology that one reads in textbooks. Not long ago, GCC didn't even build a flowgraph, and now here we are deciding what IPA technology we want

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Gabriel Dos Reis
Benjamin Kosnik [EMAIL PROTECTED] writes: [...] | I'd actually like to make this a requirement, regardless of the option | chosen. Amen. -- Gaby

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Berlin
On Tue, 2005-11-22 at 19:25 +0100, Gabriel Dos Reis wrote: Benjamin Kosnik [EMAIL PROTECTED] writes: [...] | I'd actually like to make this a requirement, regardless of the option | chosen. Amen. Uh, IPA of any sort is generally not about speed. It's fine to say compile time

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Richard Henderson
On Tue, Nov 22, 2005 at 01:47:12PM -0500, Daniel Berlin wrote: Uh, IPA of any sort is generally not about speed. Except that we're talking about replacing all the tree optimizations all of the time with llvm, which affects -O1. Or at least I thought that was the suggestion... r~

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Berlin
On Tue, 2005-11-22 at 10:49 -0800, Richard Henderson wrote: On Tue, Nov 22, 2005 at 01:47:12PM -0500, Daniel Berlin wrote: Uh, IPA of any sort is generally not about speed. Except that we're talking about replacing all the tree optimizations all of the time with llvm, which affects -O1. Or

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Gabriel Dos Reis
Daniel Berlin [EMAIL PROTECTED] writes: | On Tue, 2005-11-22 at 19:25 +0100, Gabriel Dos Reis wrote: | Benjamin Kosnik [EMAIL PROTECTED] writes: | | [...] | | | I'd actually like to make this a requirement, regardless of the option | | chosen. | | Amen. | | | Uh, IPA of any sort is

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Berlin
On Tue, 2005-11-22 at 19:57 +0100, Gabriel Dos Reis wrote: Daniel Berlin [EMAIL PROTECTED] writes: | On Tue, 2005-11-22 at 19:25 +0100, Gabriel Dos Reis wrote: | Benjamin Kosnik [EMAIL PROTECTED] writes: | | [...] | | | I'd actually like to make this a requirement, regardless of

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Richard Henderson
On Tue, Nov 22, 2005 at 05:58:14PM +0100, Steven Bosscher wrote: I thought it would basically only replace the GIMPLE parts of the compiler. That is, FE-- GENERIC -- LLVM-- RTL -- asm (trees) (trees) This is certainly the only way to avoid losing

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Benjamin Kosnik
Okay, but you need to understand that reasonable bounds for compiling the entire program at once are usually 3x-7x more (and in the worst case, even wore) than doing it seperately. That is the case with completely state of the art algorithms, implementation techniques, etc. It's just

Re: Thoughts on LLVM and LTO

2005-11-22 Thread David Edelsohn
I'd have actually guessed they could have something functional, if not 100% robust, in 6 months given 2 or 3 people on the project. The question is the width of the gap between functional and usable. A number of people on this thread have implied that GCC's data structures will need

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Gabriel Dos Reis
Benjamin Kosnik [EMAIL PROTECTED] writes: | Okay, but you need to understand that reasonable bounds for compiling | the entire program at once are usually 3x-7x more (and in the worst | case, even wore) than doing it seperately. | | That is the case with completely state of the art

Some GCC 4.1 benchmarks (Re: Thoughts on LLVM and LTO)

2005-11-22 Thread Jan Hubicka
Which is why i said It's fine to say compile time performance of the middle end portions ew may replace should be same or better. And if you were to look right now, it's actually significantly better in some cases :( Can you prove this assertion? Here is some data:

Re: Some GCC 4.1 benchmarks (Re: Thoughts on LLVM and LTO)

2005-11-22 Thread Scott Robert Ladd
Jan Hubicka wrote: I should note that comparison to ICC is not quite fair since it lacks Opteron tunning... I think you may be comparing oranges to tangerines -- not as bad as apples and oranges, but still potentially an invalid comparison. In my experience the extra registers of the

Re: Some GCC 4.1 benchmarks (Re: Thoughts on LLVM and LTO)

2005-11-22 Thread Steven Bosscher
On Tuesday 22 November 2005 21:18, Scott Robert Ladd wrote: Jan Hubicka wrote: I should note that comparison to ICC is not quite fair since it lacks Opteron tunning... I think you may be comparing oranges to tangerines -- not as bad as apples and oranges, but still potentially an invalid

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Steven Bosscher
On Tuesday 22 November 2005 19:17, Benjamin Kosnik wrote: What about compile-time performance? I'd actually like to make this a requirement, regardless of the option chosen. Amen. Maybe we should pick a baseline compiler, and require that all compile time comparisons are made wrt. that

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Steven Bosscher
On Tuesday 22 November 2005 20:21, Benjamin Kosnik wrote: Tree-SSA managed to add new technology to the compiler without major slowdowns. You must be looking at different timings than I do. GCC 4.1 is on average almost 40% slower than GCC 3.3. Gr. Steven

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Steven Bosscher
On Tuesday 22 November 2005 20:06, Richard Henderson wrote: The GVM plan could take years to get to that point... Could, but probably won't. I'd have actually guessed they could have something functional, if not 100% robust, in 6 months given 2 or 3 people on the project. Yes. But would

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Chris Lattner
On Tue, 22 Nov 2005, Daniel Jacobowitz wrote: The initial impression I get is that LLVM involves starting from scratch. I don't quite agree that this is necessary. One of the engineering challenges we need to tackle is the requirement of keeping a fully functional compiler *while* we improve

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Chris Lattner
On Tue, 22 Nov 2005, Steven Bosscher wrote: On Tuesday 22 November 2005 17:20, Diego Novillo wrote: The initial impression I get is that LLVM involves starting from scratch. I thought it would basically only replace the GIMPLE parts of the compiler. That is, FE -- GENERIC -- LLVM

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Daniel Jacobowitz
On Tue, Nov 22, 2005 at 06:42:11PM -0500, David Edelsohn wrote: Diego Novillo writes: Diego Over the last couple of years, there have been some half hearted attempts Diego at suggesting C++ as a new implementation language for GCC. I would Diego personally love to see us move to C++,

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Gabriel Dos Reis
Diego Novillo [EMAIL PROTECTED] writes: | On Tuesday 22 November 2005 18:42, David Edelsohn wrote: | | I will work with the GCC SC and FSF on that issue once the licensing | issue is addressed and we know LLVM is a viable option. | | What purpose would that serve? I'm not concerned about the

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Robert Dewar
Diego Novillo wrote: On Tuesday 22 November 2005 18:42, David Edelsohn wrote: I will work with the GCC SC and FSF on that issue once the licensing issue is addressed and we know LLVM is a viable option. What purpose would that serve? I'm not concerned about the SC, initially. It's the

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Joe Buck
Diego Novillo writes: Over the last couple of years, there have been some half hearted attempts at suggesting C++ as a new implementation language for GCC. I would personally love to see us move to C++, but so far that has not happened. On Tue, Nov 22, 2005 at 06:42:11PM -0500,

Re: Some GCC 4.1 benchmarks (Re: Thoughts on LLVM and LTO)

2005-11-22 Thread Scott Robert Ladd
Steven Bosscher wrote: It obviously doesn't do that. ICC uses that larger register file, too, for x86-64. The Intel compiler can be set to compile for multiple processors, keeping different versions of the same function in an executable and picking which code to run based on the processor in

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Chris Lattner
On Tue, 23 Nov 2005, Gabriel Dos Reis wrote: Diego Novillo [EMAIL PROTECTED] writes: | On Tuesday 22 November 2005 18:42, David Edelsohn wrote: | I will work with the GCC SC and FSF on that issue once the licensing | issue is addressed and we know LLVM is a viable option. | | What purpose

Re: Thoughts on LLVM and LTO

2005-11-22 Thread Chris Lattner
On Tue, 22 Nov 2005, Diego Novillo wrote: You will need to address two, potentially bigger, issues: license and implementation language. Over the last couple of years, there have been some half hearted attempts at suggesting C++ as a new implementation language for GCC. I would personally