RFD: CUMULATIVE_ARGS allocation

2011-06-25 Thread Joern Rennecke

The way we currently expose CUMULATIVE_ARGS to the function headers
breaks modularity; in particular, one reason why function.h currently needs
to include tm.h (PR middle-end/46495) is that it defines a structure that
contains a CUMULATIVE_ARGS member.  We could replace that with  
cumulative_args_t, but then the underlying CUMULATIVE_ARGS has to be

allocated somehow.

In general, CUMULATIVE_ARGS can be allocated in the stack frame of the  
function
that initiates the processing.  (Currently we do this with automatic  
variables;

we remove the tm.h dependency in the processing functions for this by using
alloca, with the size in a new target vector data member.)  There is one
notable exception: crtl->info.arg .  This is set by assign_parms, which lets
assign_parms_initialize_all do the initialization; the latter function is
also used from gimplify_parameters.
We must make sure that the CUMULATIVE_ARGS for the incoming arguments of
the current function remains valid till the function has finished compiling.

The options that currently come to mind are:

- Make the caller of assign_parms_initialize_all do the allocation, and pass
  a pointer to the allocated memory to assign_parms_initialize_all.

- Abolish crtl->info.arg (changing its type to cumulative_args_t already
  introduces churn at all use sites, so replacing it altogether doesn't make
  a big difference).  As a replacement, add a target hook that stores the
  information in a CUMULATIVE_ARGS typed variable, for subsequent use by
  the target.  We can just have one definition each for hook and variable
  in targhooks.c (which can become many by the magic of multiple compilations
  in separate namespaces).
  We could also pass the entire incoming_args struct in for a cleaner
  interface, but even if we disregard the churn that would cause in
  the targets, we can't to abolish crtl->args easily, since the
  target-independent code needs a number of its fields.
  Still, either way (passing in cumulative_args_t or struct incoming_args),
  I think this option is the easiest and safest to implement.

- Have the target provide allocation to a few static areas intended for
  different lifetimes, selected by an enum.  This would have low overhead,
  but anyone who can remember semipermanent_obstack,
  resume_temporary_allocation and their ilk - and likely some who don't -
  will be wary of what happens when different interpretations of what the
  lifetime categories mean cause confusion and memory corruption.

- make INIT_CUMULATIVE_ARGS allocate using garbage-collected memory.
  That would require that each target provides appropriately  
typedefed / GTY-ed

  definitions.  Multi-target operation would also require an index inside
  cumulative_args_t to decide during GC which target's GC functions to call.


gcc-4.7-20110625 is now available

2011-06-25 Thread gccadmin
Snapshot gcc-4.7-20110625 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20110625/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.7 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 175398

You'll find:

 gcc-4.7-20110625.tar.bz2 Complete GCC

  MD5=a0dd73e5d28b9aff10dfbca35e509c08
  SHA1=0a76d29ddf0a00fbae9a98c4a45b0cd821095a56

Diffs from 4.7-20110618 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.7
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


GFortran download - failure

2011-06-25 Thread Mike Du
Hello there,

I am helping my 9th grader child to learn using Gfortran for computation 
programming.
I created an account here:  JustinDU  @ http://gcc.gnu.org/wiki/HomePage.  But 
could not find any compiler to download. We are using Vista and Window7.

This email seems not working
gcc-h...@gcc.gnu.org  and try gcc@gcc.gnu.org


Thank you so much,
Mike


-Original Message-
From: mailer-dae...@sourceware.org [mailto:mailer-dae...@sourceware.org] 
Sent: Saturday, June 25, 2011 5:34 PM
To: Mike Du
Subject: failure notice

Hi. This is the qmail-send program at sourceware.org.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

:
Invalid mime type "text/html" detected in message text or attachment.  Please 
send plain text messages only.
See http://sourceware.org/lists.html#sourceware-list-info for more information.
Contact gcc-help-ow...@gcc.gnu.org if you have questions about this. (#5.7.2)

--- Enclosed are the original headers of the message.
--- Begin Message ---
(Body suppressed)
--- End Message ---