Is ada's "make install" parallel-safe?

2011-12-03 Thread Dave Korn

Hi list,

  Running "make -j8 install" in a fresh build of head, I saw loads of the
following error messages coming out in the log:

> cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/a-ztmoau.adb':
> File exists cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/a-ztmoio.adb':
> File exists cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/a-zttest.ads':
> File exists cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/a-zzboio.ads':
> File exists cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/ada.ads':
> File exists cp: cannot create regular file
> `/gnu/gcc/install.obj3/gnu/usr/lib/gcc/i686-pc-cygwin/4.7.0/adainclude/directio.ads':
> File exists
  [ ... snip ... ]

  Sure enough, all the files did exist, so I guess it must have been trying to
install them twice.  Before I try digging deeper, I thought I'd quickly ask:
Does anyone else see this?  (Is it perhaps something that wouldn't show up on
a different host, such as linux, owing to differing filesystem semantics?)

cheers,
  DaveK



Re: volatile correctness: combine vs. target.md

2011-12-03 Thread Richard Guenther
On Sat, Dec 3, 2011 at 12:42 AM, Richard Henderson  wrote:
> On 12/02/2011 06:35 AM, Richard Guenther wrote:
>> I see.  As we do not explicitely model this dependency we probably
>> get lucky by the if (gimple_has_volatile_ops ()) bail-out; most
>> passes do.
>
> What are you talking about?  Of course we do.
>
>> int
>> read_dependence (const_rtx mem, const_rtx x)
>> {
>>   return MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem);
>> }
>
> et al.

Not if you look at the respective gimple level dependency routines
in tree-ssa-alias.c, OTOH tree-data-ref.c simply refuses to handle
volatile references at all.

Richard.

>
> r~


Re: volatile correctness: combine vs. target.md

2011-12-03 Thread Richard Henderson
On 12/03/2011 06:30 AM, Richard Guenther wrote:
> Not if you look at the respective gimple level dependency routines
> in tree-ssa-alias.c, OTOH tree-data-ref.c simply refuses to handle
> volatile references at all.

That's something we'd better fix, then, regardless of whether
some pass currently refuses to handle them.


r~


gcc-4.7-20111203 is now available

2011-12-03 Thread gccadmin
Snapshot gcc-4.7-20111203 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20111203/
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 181975

You'll find:

 gcc-4.7-20111203.tar.bz2 Complete GCC

  MD5=229576f4cead16c8c29a356bae69dd88
  SHA1=e2547126460407521a2827b13e30b15203eb881c

Diffs from 4.7-2026 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.


Re: Creating a structure at compile time.

2011-12-03 Thread Matt Davis
On Fri, Dec 2, 2011 at 3:38 PM, Matt Davis  wrote:
> I am working on a gcc-plugin where I need to create a structure at compile 
> time.
> I have gleaned over one of the front ends to learn more about creating
> structures at compile time.  What I have thus far is a type node for my 
> struct.
>
> I now need to create an instance of this struct.  For exemplary purposes we 
> will
> call this type 'struct T' and we will call the instance of T, 'my_T'  By using
> the build_constructor() routine in GCC I create an instance, my_T, which I 
> need
> to pass the address of to a function.  So, I take this decl, my_T, and pass 
> it to
> build_fold_addr_expr().  The result of the latter is what I pass to the
> function 'fn()'.
>
> Yes, the function I am passing the reference to is expecting the proper type,
> that of address-to-T.  Running this presents me with an error in
> expand_expr_real_1() where "Variables inherited from containing functions 
> should
> have been lowered by this point."
>
> So, I figure, if I create a temp variable, 'V', of type pointer-to-T, and run
> make_ssa_name() on that temp.  And then insert an assignment before the call 
> to
> fn, so I get: 'V = &my_T;'  After looking at the GIMPLE dump, I see, 'V = 
> &my_T;
> fn(V);'  Which is correct, however, in the type list of the caller, I only 
> see:
> 'struct * V;'  Now, this concerns me, I would expect to see "struct T *V;"  As
> above, this case also fails.
>
> I am baffled, do I need to even be creating the ssa_name instance to pass to
> 'fn()', which is 'V' in the case above?  Or, will the build_constructor()
> produce a tree node that I can treat as a variable, that I can pass to 'fn()' 
> ?
>
> -Matt

Well, I have successfully created and used an initialized structure.
Note that I do not need to run the make_ssa_name.  I can declare the
struct as TREE_STATIC and work from there.  Now, my problem with the
expand_expr_real_1 check failing is because some of the values I
initialize in my compile-time created struct can be different at
runtime.  Is there a way I can take this constructor tree node, and
have all of the values in it set in the middle of my function, where
those values are defined?   I do not need the structure initialized
upon function entry.  What I need is to have all of the values, which
I already setup when I am in the middle of the function being
processed.  I need these values actually filled-out in the middle of
function instead at function entry.  I am unsure how to do this.  The
constructor node exists, and I'm in the middle of an IPA pass.  I
assume I can call gimplify_expr() but I am thinking I need to pass it
something different than just a constructor tree node.

Thanks for any help

-Matt