Abt RTL expression

2006-11-10 Thread Rohit Arul Raj
Hello all, While going through the RTL dumps, I noticed a few things which i need to get clarified. Below is the extract, in which i get the doubt. (insn 106 36 107 6 (set (reg:SI 13 a5) (const_int -20 [0xffec])) 17 {movsi_short_const} (nil) (nil)) (insn 107 106 108 6 (parallel [

strict aliasing question

2006-11-10 Thread Howard Chu
I see a lot of APIs (e.g. Cyrus SASL) that have accessor functions returning values through a void ** argument. As far as I can tell, this doesn't actually cause any problems, but gcc 4.1 with -Wstrict-aliasing will complain. For example, take these two separate source files: alias1.c

Re: strict aliasing question

2006-11-10 Thread Richard Guenther
On 11/10/06, Howard Chu [EMAIL PROTECTED] wrote: I see a lot of APIs (e.g. Cyrus SASL) that have accessor functions returning values through a void ** argument. As far as I can tell, this doesn't actually cause any problems, but gcc 4.1 with -Wstrict-aliasing will complain. For example, take

RE: [m32c-elf] losing track of register lifetime in combine?

2006-11-10 Thread Dave Korn
On 10 November 2006 07:13, Ian Lance Taylor wrote: DJ Delorie [EMAIL PROTECTED] writes: I compared the generated code with an equivalent explicit test, and discovered that gcc uses a separate rtx for the intermediate: i = 0xf; if (j = 16) { int i2; i2 = i 8; i = i2

RE: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Dave Korn
On 10 November 2006 07:34, Brooks Moses wrote: The Fortran front end currently has a lang.opt entry of the following form: ffixed-line-length- Fortran RejectNegative Joined UInteger I would like to add to this the following option which differs in the last character, but should be

Re: Abt RTL expression - combining instruction

2006-11-10 Thread Rohit Arul Raj
Hi all, Finally got the combined compare_and_branch instruction to work. But it has some side effects while testing other files. 20010129-1.s: Assembler messages: 20010129-1.s:46: Error: Value of 0x88 too large for 7-bit relative instruction offset I just designed my compare and branch insn as

Question on tree-nested.c:convert_nl_goto_reference

2006-11-10 Thread Richard Kenner
I have a test case (involving lots of new code that's not checked in yet) that's blowing up with a nonlocal goto and I'm wondering how it ever worked because it certainly appears to me that DECL_CONTEXT has to be copied from label to new_label. But it isn't. So how are nonlocal gotos working?

Re: Abt long long support

2006-11-10 Thread Mohamed Shafi
On 11/10/06, Mike Stump [EMAIL PROTECTED] wrote: On Nov 9, 2006, at 6:39 AM, Mohamed Shafi wrote: When i diff the rtl dumps for programs passing negative value with and without frame pointer i find changes from file.greg . A quick glance at the rtl shows that insn 95 tries to use [a4+4] but

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Joern RENNECKE
Mike Stump wrote: Now, what are the benefits and weaknesses between mine and your, you don't have to carry around type_context the way mine would, that's a big win. You don't have to do anything special move a reference to a type around, that's a big win. You have to do a structural

Re: [m32c-elf] losing track of register lifetime in combine?

2006-11-10 Thread Ian Lance Taylor
Dave Korn [EMAIL PROTECTED] writes: On 10 November 2006 07:13, Ian Lance Taylor wrote: DJ Delorie [EMAIL PROTECTED] writes: I compared the generated code with an equivalent explicit test, and discovered that gcc uses a separate rtx for the intermediate: i = 0xf; if (j = 16)

Re: Abt RTL expression - combining instruction

2006-11-10 Thread Ian Lance Taylor
Rohit Arul Raj [EMAIL PROTECTED] writes: 1. Does attribute length affect the calculation of offset? It does if you tell it to. The length attribute must be managed entirely by your backend. Most backends with variable size branches use the length attribute to select which branch insn to

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Doug Gregor
On 11/9/06, Mike Stump [EMAIL PROTECTED] wrote: On Nov 8, 2006, at 5:59 AM, Doug Gregor wrote: However, this approach could have some odd side effects when there are multiple mappings within one context. For instance, we could have something like: typedef int foo_t; typedef int bar_t;

RE: [m32c-elf] losing track of register lifetime in combine?

2006-11-10 Thread Dave Korn
On 10 November 2006 15:01, Ian Lance Taylor wrote: In any case a '+' constraint doesn't make any difference this early in the RTL passes. combine doesn't look at constraints. bah, of course! Ignore me, I'll just go sit in the dunce's corner for a while :) cheers, DaveK --

Re: Abt long long support

2006-11-10 Thread Ian Lance Taylor
Mohamed Shafi [EMAIL PROTECTED] writes: (insn 94 91 95 6 (set (reg:SI 12 a4) (mem/c:SI (reg:SI 12 a4) [0 D.1863+0 S4 A32])) 15 {movsi_load} (nil) (nil)) (insn 95 94 31 6 (set (reg:SI 13 a5 [orig:12+4 ] [12]) (mem/c:SI (plus:SI (reg:SI 12 a4) (const_int

Re: Abt RTL expression

2006-11-10 Thread Ian Lance Taylor
Rohit Arul Raj [EMAIL PROTECTED] writes: (insn 106 36 107 6 (set (reg:SI 13 a5) (const_int -20 [0xffec])) 17 {movsi_short_const} (nil) (nil)) (insn 107 106 108 6 (parallel [ (set (reg:SI 13 a5) (plus:SI (reg:SI 13 a5)

Re: Abt long long support

2006-11-10 Thread Rask Ingemann Lambertsen
On Thu, Nov 09, 2006 at 11:52:02AM -0800, Mike Stump wrote: The way the instructions are numbered suggests that the code went wrong before this point. You have to read and understand all the dumps, whether they are right or wrong and why, track down the code in the compiler that is

Re: Question on tree-nested.c:convert_nl_goto_reference

2006-11-10 Thread Ian Lance Taylor
[EMAIL PROTECTED] (Richard Kenner) writes: I have a test case (involving lots of new code that's not checked in yet) that's blowing up with a nonlocal goto and I'm wondering how it ever worked because it certainly appears to me that DECL_CONTEXT has to be copied from label to new_label. But

Re: Planned LTO driver work

2006-11-10 Thread Ian Lance Taylor
Mark Mitchell [EMAIL PROTECTED] writes: Though, if we *are* doing the template-repository dance, we'll have to do that for a while, declare victory, then invoke the LTO front end, and, finally, the actual linker, which will be a bit complicated. It might be that we should move the invocation

Re: Planned LTO driver work

2006-11-10 Thread Mark Mitchell
Ian Lance Taylor wrote: Mark Mitchell [EMAIL PROTECTED] writes: Though, if we *are* doing the template-repository dance, we'll have to do that for a while, declare victory, then invoke the LTO front end, and, finally, the actual linker, which will be a bit complicated. It might be that we

expanding __attribute__((format,..))

2006-11-10 Thread Nuno Lopes
Hi, I've been thinking that it would be a good idea to extend the current __attribute__((format,..)) to use an arbitrary user callback. I searched the mailing list archives and I found some references to similar ideas. So do you think this is feasible? It would allow specifying arbitrary

Re: expanding __attribute__((format,..))

2006-11-10 Thread Ian Lance Taylor
Nuno Lopes [EMAIL PROTECTED] writes: I've been thinking that it would be a good idea to extend the current __attribute__((format,..)) to use an arbitrary user callback. I searched the mailing list archives and I found some references to similar ideas. So do you think this is feasible? I

Re: expanding __attribute__((format,..))

2006-11-10 Thread Joseph S. Myers
On Fri, 10 Nov 2006, Ian Lance Taylor wrote: I kind of liked this idea: http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00797.html but of course it was insane. I still think a higher level state machine as described in the followups is how things should be done. The first step (or the

PATCH: wwwdocs: Update Intel64 and IA32 SDM website

2006-11-10 Thread H. J. Lu
Intel has published Core 2 Duo Optimization Reference Manual. I will check in this patch to update wwwdocs. H.J. 2006-11-10 H.J. Lu [EMAIL PROTECTED] * readings.html: Update Intel64 and IA32 SDM website. Index: readings.html

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Richard Guenther wrote: On 11/10/06, Howard Chu [EMAIL PROTECTED] wrote: The program prints the expected result with both strict-aliasing and no-strict-aliasing on my x86_64 box. As such, when/why would I need to worry about this warning? If you compile with -O3 -combine *.c -o alias it

Re: expanding __attribute__((format,..))

2006-11-10 Thread Nuno Lopes
I've been thinking that it would be a good idea to extend the current __attribute__((format,..)) to use an arbitrary user callback. I searched the mailing list archives and I found some references to similar ideas. So do you think this is feasible? I think it would be nice. We usually founder

Re: Abt long long support

2006-11-10 Thread Rask Ingemann Lambertsen
On Fri, Nov 10, 2006 at 07:17:29AM -0800, Ian Lance Taylor wrote: Mohamed Shafi [EMAIL PROTECTED] writes: 1. What could be the reason for this behavior? I'm really shooting in the dark here, but my guess is that you have a define_expand for movdi that is not reload safe. And in case

Core 2 Duo Optimization Reference Manual is available

2006-11-10 Thread H. J. Lu
On Fri, Nov 10, 2006 at 09:36:59AM -0800, H. J. Lu wrote: Intel has published Core 2 Duo Optimization Reference Manual. I will check in this patch to update wwwdocs. I checked it in. You can find Core 2 Duo Optimization Reference Manual at

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Doug Gregor
On 08 Nov 2006 03:45:26 +0100, Gabriel Dos Reis [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] (Richard Kenner) writes: | Like when int and long have the same range on a platform? | The answer is they are different, even when they imply the same object | representation. | | The notion of

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Ian Lance Taylor [EMAIL PROTECTED] writes: [...] | I meant something very simple: for every type, there is a | TYPE_CANONICAL field. This is how you tell whether two types are | equivalent: | TYPE_CANONICAL (a) == TYPE_CANONICAL (b) | That is what I mean when I saw one memory dereference

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Doug Gregor [EMAIL PROTECTED] writes: [...] | With concepts, there are cases where we end up creating two different | type nodes that we later find out should have been the same type node. | Here's an example: | | templatetypename T, typename U | where LessThanComparableT SameTypeT, U |

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Doug Gregor
On 10 Nov 2006 19:15:45 +0100, Gabriel Dos Reis [EMAIL PROTECTED] wrote: Doug Gregor [EMAIL PROTECTED] writes: | With concepts, there are cases where we end up creating two different | type nodes that we later find out should have been the same type node. | Here's an example: | |

RE: Abt long long support

2006-11-10 Thread Dave Korn
On 10 November 2006 17:55, Rask Ingemann Lambertsen wrote: On Fri, Nov 10, 2006 at 07:17:29AM -0800, Ian Lance Taylor wrote: Mohamed Shafi [EMAIL PROTECTED] writes: 1. What could be the reason for this behavior? I'm really shooting in the dark here, but my guess is that you have a

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Doug Gregor [EMAIL PROTECTED] writes: | On 10 Nov 2006 19:15:45 +0100, Gabriel Dos Reis | [EMAIL PROTECTED] wrote: | Doug Gregor [EMAIL PROTECTED] writes: | | With concepts, there are cases where we end up creating two different | | type nodes that we later find out should have been the same

subreg transformation causes incorrect post_inc

2006-11-10 Thread TabonyEE
Hi, My port, based on (GCC) 4.2.0 20061002 (experimental), is producing incorrect code for the following test case: int f(short *p){ int sum, i; sum = 0; for(i = 0; i 256; i++){ sum += *p++ 0xFF; } return sum; } The RTL snippet of interest, before combine, is, (insn 23 22

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Doug Gregor [EMAIL PROTECTED] writes: | On 08 Nov 2006 03:45:26 +0100, Gabriel Dos Reis | [EMAIL PROTECTED] wrote: | [EMAIL PROTECTED] (Richard Kenner) writes: | | | Like when int and long have the same range on a platform? | | The answer is they are different, even when they imply the same

Re: subreg transformation causes incorrect post_inc

2006-11-10 Thread Mark Shinwell
[EMAIL PROTECTED] wrote: My port, based on (GCC) 4.2.0 20061002 (experimental), is producing incorrect code for the following test case: [snip] I've only had a very quick look at your code, but I have a feeling that this is an instance of the kind of slip-up with GO_IF_MODE_DEPENDENT_ADDRESS

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Doug Gregor
On 10 Nov 2006 20:12:27 +0100, Gabriel Dos Reis [EMAIL PROTECTED] wrote: Doug Gregor [EMAIL PROTECTED] writes: I don't see why you need to merge the types, as opposed to setting their canonical types. I have union-find on the mind, so I'm using the terms interchangeably. Setting their

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Doug Gregor [EMAIL PROTECTED] writes: [...] | | For instance, say we have built the types T* and | | U* before seeing that same-type constraint. Now, we also need | | TYPE_CANONICAL (T*) == TYPE_CANONICAL (U*). | | And TYPE_CANONICAL(LessThanComparableT) == | |

Configuration question

2006-11-10 Thread Steve Ellcey
I have run into a libstdc++ configuration issue and was wondering if it is a known issue or not. My build failed because the compiler I am using to build GCC and libstdc++ does not have wchar support and does not define mbstate_t. The compiler (and library) that I am creating however, do support

Re: subreg transformation causes incorrect post_inc

2006-11-10 Thread TabonyEE
From: Mark Shinwell [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: My port, based on (GCC) 4.2.0 20061002 (experimental), is producing incorrect code for the following test case: [snip] I've only had a very quick look at your code, but I have a feeling thatthis is an instance of the kind of

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Mike Stump
On Nov 9, 2006, at 11:09 PM, Ian Lance Taylor wrote: I meant something very simple: for every type, there is a TYPE_CANONICAL field. This is how you tell whether two types are equivalent: TYPE_CANONICAL (a) == TYPE_CANONICAL (b) Ah, yes, that would work. Hum, so simple, why was I

Re: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Mark Mitchell
Dave Korn wrote: It may seem a bit radical, but is there any reason not to modify the option-parsing machinery so that either '-' or '=' are treated interchangeably for /all/ options with joined arguments? That is, whichever is specified in the .opt file, the parser accepts either? I

Re: expanding __attribute__((format,..))

2006-11-10 Thread Nuno Lopes
On Fri, 10 Nov 2006, Ian Lance Taylor wrote: I kind of liked this idea: http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00797.html but of course it was insane. I still think a higher level state machine as described in the followups is how things should be done. wouldn't that be killing a

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Mark Mitchell
Ian Lance Taylor wrote: This assumes, of course, that we can build an equivalence set for types. I think that we need to make that work in the middle-end, and force the front-ends to conform. As someone else mentioned, there are horrific cases in C like a[] being compatible with both a[5]

Re: Canonical type nodes, or, comptypes considered harmful

2006-11-10 Thread Gabriel Dos Reis
Mike Stump [EMAIL PROTECTED] writes: | On Nov 9, 2006, at 11:09 PM, Ian Lance Taylor wrote: | I meant something very simple: for every type, there is a | TYPE_CANONICAL field. This is how you tell whether two types are | equivalent: | TYPE_CANONICAL (a) == TYPE_CANONICAL (b) | | Ah,

Re: subreg transformation causes incorrect post_inc

2006-11-10 Thread TabonyEE
From: Mark Shinwell [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: My port, based on (GCC) 4.2.0 20061002 (experimental), is producing incorrect code for the following test case: [snip] I've only had a very quick look at your code, but I have a feeling thatthis is an instance of the kind of

Threading the compiler

2006-11-10 Thread Mike Stump
We're going to have to think seriously about threading the compiler. Intel predicts 80 cores in the near future (5 years). http:// hardware.slashdot.org/article.pl?sid=06/09/26/1937237from=rss To use this many cores for a single compile, we have to find ways to split the work. The best

Re: Threading the compiler

2006-11-10 Thread H. J. Lu
On Fri, Nov 10, 2006 at 12:38:07PM -0800, Mike Stump wrote: How many hunks do we need, well, today I want 8 for 4.2 and 16 for mainline, each release, just 2x more. I'm assuming nice, equal sized hunks. For larger variations in hunk size, I'd need even more hunks. Or, so that is just

RE: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Dave Korn
On 10 November 2006 20:06, Mark Mitchell wrote: Dave Korn wrote: It may seem a bit radical, but is there any reason not to modify the option-parsing machinery so that either '-' or '=' are treated interchangeably for /all/ options with joined arguments? That is, whichever is specified

Re: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Mark Mitchell
Dave Korn wrote: On 10 November 2006 20:06, Mark Mitchell wrote: Dave Korn wrote: It may seem a bit radical, but is there any reason not to modify the option-parsing machinery so that either '-' or '=' are treated interchangeably for /all/ options with joined arguments? That is,

9 Nov 06 notes from GCC improvement for Itanium conference call

2006-11-10 Thread Mark K. Smith
ON THE CALL: Kenny Zadack (Natural Bridge), Diego Novillo (Red Hat), Vladimir Makarov (Red Hat), Mark Smith (Gelato), Bob Kidd (UIUC), Andrey Belevantsev (RAS), Arutyun Avetisyan (RAS), Mark Davis (Intel), Sebastian Pop (Ecole des Mines de Paris) Agenda: 1) Gelato ICE April GCC track proposed

Re: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Brooks Moses
Dave Korn wrote: On 10 November 2006 20:06, Mark Mitchell wrote: Dave Korn wrote: It may seem a bit radical, but is there any reason not to modify the option-parsing machinery so that either '-' or '=' are treated interchangeably for /all/ options with joined arguments? That is, whichever is

Re: Threading the compiler

2006-11-10 Thread Mike Stump
On Nov 10, 2006, at 12:46 PM, H. J. Lu wrote: Will use C++ help or hurt compiler parallelism? Does it really matter? I'm not an expert, but, in the simple world I want, I want it to not matter in the least. For the people writing most code in the compiler, I want clear simple rules for

Re: Threading the compiler

2006-11-10 Thread Sohail Somani
On Fri, 2006-11-10 at 12:46 -0800, H. J. Lu wrote: On Fri, Nov 10, 2006 at 12:38:07PM -0800, Mike Stump wrote: How many hunks do we need, well, today I want 8 for 4.2 and 16 for mainline, each release, just 2x more. I'm assuming nice, equal sized hunks. For larger variations in hunk

Re: Threading the compiler

2006-11-10 Thread Sohail Somani
On Fri, 2006-11-10 at 13:31 -0800, Mike Stump wrote: On Nov 10, 2006, at 12:46 PM, H. J. Lu wrote: Will use C++ help or hurt compiler parallelism? Does it really matter? I'm not an expert, but, in the simple world I want, I want it to not matter in the least. For the people writing most

Re: Threading the compiler

2006-11-10 Thread Marcin Dalecki
On 2006-11-10, at 21:46, H. J. Lu wrote: On Fri, Nov 10, 2006 at 12:38:07PM -0800, Mike Stump wrote: How many hunks do we need, well, today I want 8 for 4.2 and 16 for mainline, each release, just 2x more. I'm assuming nice, equal sized hunks. For larger variations in hunk size, I'd need

Re: strict aliasing question

2006-11-10 Thread Mike Stump
On Nov 10, 2006, at 9:48 AM, Howard Chu wrote: Richard Guenther wrote: If you compile with -O3 -combine *.c -o alias it will break. Thanks for pointing that out. But that's not a realistic danger for the actual application. The accessor function is always going to be in a library compiled

Re: Threading the compiler

2006-11-10 Thread Marcin Dalecki
On 2006-11-10, at 22:33, Sohail Somani wrote: On Fri, 2006-11-10 at 12:46 -0800, H. J. Lu wrote: On Fri, Nov 10, 2006 at 12:38:07PM -0800, Mike Stump wrote: How many hunks do we need, well, today I want 8 for 4.2 and 16 for mainline, each release, just 2x more. I'm assuming nice, equal

Re: Threading the compiler

2006-11-10 Thread Basile STARYNKEVITCH
Le Fri, Nov 10, 2006 at 01:33:42PM -0800, Sohail Somani écrivait/wrote: I don't think it can possibly hurt as long as people follow normal C++ coding rules. The main issue is not really language choice though. The main issues would likely be defining data to be isolated enough to be useful

Re: expanding __attribute__((format,..))

2006-11-10 Thread Mike Stump
On Nov 10, 2006, at 9:14 AM, Ian Lance Taylor wrote: Nuno Lopes [EMAIL PROTECTED] writes: I've been thinking that it would be a good idea to extend the current __attribute__((format,..)) to use an arbitrary user callback. I searched the mailing list archives and I found some references to

Re: Planned LTO driver work

2006-11-10 Thread Mike Stump
On Nov 9, 2006, at 11:37 PM, Mark Mitchell wrote: It might be that we should move the invocation of the real linker back into gcc.c, so that collect2's job just becomes Or move all of collect2 back into gcc.c. There isn't a reason for it being separate any longer.

Re: Question on tree-nested.c:convert_nl_goto_reference

2006-11-10 Thread Richard Kenner
But I do get a failure in verify_flow_info with the appended test case. Indeed that's where I get the ICE. verify_flow_info is only used when checking is enabled, so maybe that is why people aren't seeing it? But isn't that the default on the trunk?

Re: Threading the compiler

2006-11-10 Thread Kevin Handy
Mike Stump wrote: ... Thoughts? Raw thoughts: 1. Threading isn't going to help for I/O bound portions. 2. The OS should already be doing some of the work of threading. Some 'parts' of the compiler should already be using CPUs: 'make', the front-end (gcc) command, the language compiler,

Re: Abt long long support

2006-11-10 Thread 'Rask Ingemann Lambertsen'
On Fri, Nov 10, 2006 at 07:11:34PM -, Dave Korn wrote: No, surely you don't want to do that! You really need a movdi pattern - even more so if there are no natural DImode-sized registers, as gcse can get terribly confused by bad reg_equal notes if you don't. See e.g.:

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Mike Stump wrote: On Nov 10, 2006, at 9:48 AM, Howard Chu wrote: Richard Guenther wrote: If you compile with -O3 -combine *.c -o alias it will break. Thanks for pointing that out. But that's not a realistic danger for the actual application. The accessor function is always going to be in a

Re: Handling of extern inline in c99 mode

2006-11-10 Thread Hallvard B Furuseth
I'm not subscribed to this list, I just noticed this discussion while browsing around... Don't know if the list accept non-subscriber messages either, but let's see: Ian Lance Taylor wrote: codesearch.google.com finds about 6000 uses of extern line in code written in C, but the search

RE: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Dave Korn
On 10 November 2006 21:18, Brooks Moses wrote: Dave Korn wrote: But that's already not possible -- that's essentially how I got into this problem in the first place. If one tries to define both of those, the declaration of the enumeration-type holding the option flags breaks, so you can't

gcc-4.1-20061110 is now available

2006-11-10 Thread gccadmin
Snapshot gcc-4.1-20061110 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.1-20061110/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 4.1 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches

Re: C++: Implement code transformation in parser or tree

2006-11-10 Thread Mark Mitchell
Sohail Somani wrote: struct __some_random_name { void operator()(int t){t++;} }; for_each(b,e,__some_random_name()); Would this require a new tree node like LAMBDA_FUNCTION or should the parser do the translation? In the latter case, no new nodes should be necessary (I think).

Re: expanding __attribute__((format,..))

2006-11-10 Thread Joseph S. Myers
On Fri, 10 Nov 2006, Nuno Lopes wrote: On Fri, 10 Nov 2006, Ian Lance Taylor wrote: I kind of liked this idea: http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00797.html but of course it was insane. I still think a higher level state machine as described in the followups is

Re: Threading the compiler

2006-11-10 Thread Sohail Somani
On Fri, 2006-11-10 at 22:49 +0100, Marcin Dalecki wrote: I don't think it can possibly hurt as long as people follow normal C++ coding rules. Contrary to C there is no single general coding style for C++. In fact for a project of such a scale this may be indeed the most significant

Re: Threading the compiler

2006-11-10 Thread Mike Stump
On Nov 10, 2006, at 2:19 PM, Kevin Handy wrote: What will the multi-core compiler design do to the old processors (extreme slowness?) Roughly speaking, I want it to add around 1000 extra instructions per function compiled, in other words, nothing. The compile speed will be what the

Re: C++: Implement code transformation in parser or tree

2006-11-10 Thread Sohail Somani
On Fri, 2006-11-10 at 14:47 -0800, Mark Mitchell wrote: Sohail Somani wrote: struct __some_random_name { void operator()(int t){t++;} }; for_each(b,e,__some_random_name()); Would this require a new tree node like LAMBDA_FUNCTION or should the parser do the translation?

Re: Question on tree-nested.c:convert_nl_goto_reference

2006-11-10 Thread Ian Lance Taylor
[EMAIL PROTECTED] (Richard Kenner) writes: But I do get a failure in verify_flow_info with the appended test case. Indeed that's where I get the ICE. verify_flow_info is only used when checking is enabled, so maybe that is why people aren't seeing it? But isn't that the default on

Re: How to create both -option-name-* and -option-name=* options?

2006-11-10 Thread Brooks Moses
Dave Korn wrote: On 10 November 2006 21:18, Brooks Moses wrote: But that's already not possible -- that's essentially how I got into this problem in the first place. If one tries to define both of those, the declaration of the enumeration-type holding the option flags breaks, so you can't do

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Richard Guenther wrote: On 11/10/06, Howard Chu [EMAIL PROTECTED] wrote: I see a lot of APIs (e.g. Cyrus SASL) that have accessor functions returning values through a void ** argument. As far as I can tell, this doesn't actually cause any problems, but gcc 4.1 with -Wstrict-aliasing will

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Joe Buck wrote: On Fri, Nov 10, 2006 at 04:18:25PM -0800, Howard Chu wrote: Richard Guenther wrote: If you compile with -O3 -combine *.c -o alias it will break. Hm, actually it still prints the correct result for me. What platform are you using where it actually makes a

Re: Threading the compiler

2006-11-10 Thread Ross Ridge
Mike Stump writes: We're going to have to think seriously about threading the compiler. Intel predicts 80 cores in the near future (5 years). [...] To use this many cores for a single compile, we have to find ways to split the work. The best way, of course is to have make -j80 do that for us, this

Re: strict aliasing question

2006-11-10 Thread Andreas Schwab
Howard Chu [EMAIL PROTECTED] writes: I understand that logic, in the general case. In this specific example, none of those conditions apply. foo is an uninitialized local variable. Therefore the compiler cannot know that it has a valid copy of it in any register. In fact what it should know

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Andreas Schwab wrote: Howard Chu [EMAIL PROTECTED] writes: I understand that logic, in the general case. In this specific example, none of those conditions apply. foo is an uninitialized local variable. Therefore the compiler cannot know that it has a valid copy of it in any register. In

Re: Getting char from INTEGER_TYPE node

2006-11-10 Thread Brendon Costa
I am having some trouble with getting type names as declared by the user in source. In particular if i have two functions: void Function(int i); void Function(char c); when processing the parameters i get an INTEGER_TYPE node in the parameter list for both function as expected,

Re: Threading the compiler

2006-11-10 Thread Paul Brook
The competition is already starting to make progress in this area. We don't want to spend time in locks or spinning and we don't want to liter our code with such things, so, if we form areas that are fairly well isolated and independent and then have a manager, manage the compilation process

Re: strict aliasing question

2006-11-10 Thread Daniel Berlin
It will load the value from memory, true, but who says that the store to memory will happen before that? The compiler is allowed to reorder the statements since it knows that foo and *arg cannot alias. If the compiler is smart enough to know how to reorder the statements, then it should be

Re: Threading the compiler

2006-11-10 Thread Daniel Berlin
On 11/10/06, Mike Stump [EMAIL PROTECTED] wrote: On Nov 10, 2006, at 12:46 PM, H. J. Lu wrote: Will use C++ help or hurt compiler parallelism? Does it really matter? I'm not an expert, but, in the simple world I want, I want it to not matter in the least. For the people writing most code in

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Daniel Berlin wrote: It will load the value from memory, true, but who says that the store to memory will happen before that? The compiler is allowed to reorder the statements since it knows that foo and *arg cannot alias. If the compiler is smart enough to know how to reorder the

Re: strict aliasing question

2006-11-10 Thread Daniel Berlin
Hm. If you're going to reorder these things, then I would expect either an error or a warning at that point, because you really do know that a reference to an uninitialized variable is happening. We do warn when we see an uninitialized value if -Wuninitialized is on. We don't warn at every

Re: C++: Implement code transformation in parser or tree

2006-11-10 Thread Andrew Pinski
On Fri, 2006-11-10 at 15:23 -0800, Sohail Somani wrote: Do you need new class types, or just an anonymous FUNCTION_DECL? Hi Mark, thanks for your reply. In general it would be a new class. If the lambda function looks like: void myfunc() { int a; ...(int i1,int i2) extern (a)

Re: C++: Implement code transformation in parser or tree

2006-11-10 Thread Sohail Somani
On Fri, 2006-11-10 at 19:46 -0800, Andrew Pinski wrote: On Fri, 2006-11-10 at 15:23 -0800, Sohail Somani wrote: Do you need new class types, or just an anonymous FUNCTION_DECL? Hi Mark, thanks for your reply. In general it would be a new class. If the lambda function looks like:

Re: strict aliasing question

2006-11-10 Thread Alexey Starovoytov
On Fri, 10 Nov 2006, Daniel Berlin wrote: It will load the value from memory, true, but who says that the store to memory will happen before that? The compiler is allowed to reorder the statements since it knows that foo and *arg cannot alias. If the compiler is smart enough to

Re: Threading the compiler

2006-11-10 Thread Geert Bosch
Most people aren't waiting for compilation of single files. If they do, it is because a single compilation unit requires parsing/compilation of too many unchanging files, in which case the primary concern is avoiding redoing useless compilation. The common case is that people just don't use the

Re: Threading the compiler

2006-11-10 Thread Chris Lattner
On Nov 10, 2006, at 9:08 PM, Geert Bosch wrote: The common case is that people just don't use the -j feature of make because 1) they don't know about it 2) their IDE doesn't know about it 3) they got burned by bad Makefiles 4) it's just too much typing Don't forget: 5) running 4 GCC

Re: strict aliasing question

2006-11-10 Thread Andrew Pinski
On Fri, 2006-11-10 at 21:00 -0800, Alexey Starovoytov wrote: while speaking about uninitialized variables gcc developers probably want to look at their own sources first: gcc/testsuite/gcc.dg/vect/vect-27.c If any code in the testsuite is broken, it should be changed. And this is not really

Re: Threading the compiler

2006-11-10 Thread Marcin Dalecki
On 2006-11-11, at 06:08, Geert Bosch wrote: Just compiling int main() { puts (Hello, world!); return 0; } takes 342 system calls on my Linux box, most of them related to creating processes, repeated dynamic linking, and other initialization stuff, and reading and writing temporary files for

Re: Threading the compiler

2006-11-10 Thread Sohail Somani
On Sat, 2006-11-11 at 00:08 -0500, Geert Bosch wrote: Most of my compilations (on Linux, at least) use close to 100% of CPU. Adding more overhead for threading and communication/synchronization can only hurt. In my daily work, I take processes that run 100% and make them use 100% in less time.

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Daniel Berlin wrote: We ask the TBAA analyzer can a store to a short * touch i. In this case, it says no, because it's not legal. If you know the code is not legal, why don't you abort the compilation with an error code? The current silent behavior provides a mechanism for creating

Re: strict aliasing question

2006-11-10 Thread Andrew Pinski
On Fri, 2006-11-10 at 23:05 -0800, Howard Chu wrote: Daniel Berlin wrote: We ask the TBAA analyzer can a store to a short * touch i. In this case, it says no, because it's not legal. If you know the code is not legal, why don't you abort the compilation with an error code? The code is

Re: Threading the compiler

2006-11-10 Thread Mike Stump
On Nov 10, 2006, at 5:43 PM, Paul Brook wrote: Can you make it run on my graphics card too? :-) You know all the power on a bleeding edge system is in the GPU now. People are already starting to migrate data processing for their applications to it. Don't bet against it. In fact, we

Re: strict aliasing question

2006-11-10 Thread Howard Chu
Andrew Pinski wrote: On Fri, 2006-11-10 at 23:05 -0800, Howard Chu wrote: Daniel Berlin wrote: We ask the TBAA analyzer can a store to a short * touch i. In this case, it says no, because it's not legal. If you know the code is not legal, why don't you abort the compilation

Re: strict aliasing question

2006-11-10 Thread Rask Ingemann Lambertsen
On Fri, Nov 10, 2006 at 02:32:10PM -0800, Howard Chu wrote: With the previous example, if alias1.c was instead: #include stdio.h extern void getit( void **arg ); main() { union { int *foo; void *bar; } u; getit( u.bar );

Re: Threading the compiler

2006-11-10 Thread Nicholas Nethercote
On Fri, 10 Nov 2006, Mike Stump wrote: On Nov 10, 2006, at 12:46 PM, H. J. Lu wrote: Will use C++ help or hurt compiler parallelism? Does it really matter? I'm not an expert, but, in the simple world I want, I want it to not matter in the least. For the people writing most code in the

  1   2   >