Re: Ada subtypes and base types

2006-02-25 Thread Zdenek Dvorak
Hello,

> Jeffrey A Law wrote:
> > Another possibility is to simply not allow conversions between a
> > subtype and basetype. 
> 
> Such a patch also solves the problem.  But I'm not sure to understand
> the impact on other codes.  Is this kind of conversion between a type
> and its basetype specific to Ada?

this still seems unnecessarily conservative to me.  I would just check
for types whose TYPE_MIN and TYPE_MAX do not match the natural values
derived from the type precision (i.e., those returned by
upper_bound_in_type (type, type) and lower_bound_in_type (type, type)).

Zdenek

> Index: tree-chrec.c
> ===
> --- tree-chrec.c  (revision 111416)
> +++ tree-chrec.c  (working copy)
> @@ -1207,7 +1207,9 @@ chrec_convert_aggressive (tree type, tre
>  return NULL_TREE;
>  
>inner_type = TREE_TYPE (chrec);
> -  if (TYPE_PRECISION (type) > TYPE_PRECISION (inner_type))
> +  if (TYPE_PRECISION (type) > TYPE_PRECISION (inner_type)
> +  /* Conversions between a subtype and its basetype are not allowed.  */
> +  || TREE_TYPE (type) == TREE_TYPE (chrec))
>  return NULL_TREE;
>  
>left = CHREC_LEFT (chrec);


g++ 4.2.x and (auto) inlining

2006-02-25 Thread tbp
Hello,

i've just experienced a 40%+ run-time performance drop that, in fine,
was due to g++ refusing to auto-inline trivial ctors and the like in a
cramped unit (featuring no and forced inlines). That's not the first
time i meet that snafu, but what kinda surprises me is the fact that
i've recently removed more code than added (granted, that doesn't mean
much) and that unit was already being compiled with: --param
inline-unit-growth=1 --param max-inline-insns-recursive=1.

I had to bump both by an order of magnitude to get things flying
again. Even if it works, i'm a bit worried that in some not too
distant future i may run out of digits.
That was with gcc version 4.2.0 20060204 and i was wondering if
semi-recently, g++ behaviour regarding auto inlining had been tweaked
or something.

In any case, if there's a better stopgap that doesn't imply
explicitely force inlining everything in sight, i'd like to know. Or
if there's something in the work.

Regards,
tbp.


gcc-4.2-20060225 is now available

2006-02-25 Thread gccadmin
Snapshot gcc-4.2-20060225 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20060225/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

gcc-4.2-20060225.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20060225.tar.bz2 C front end and core compiler

gcc-ada-4.2-20060225.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20060225.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20060225.tar.bz2  C++ front end and runtime

gcc-java-4.2-20060225.tar.bz2 Java front end and runtime

gcc-objc-4.2-20060225.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20060225.tar.bz2The GCC testsuite

Diffs from 4.2-20060218 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
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: Tuples for GIMPLE

2006-02-25 Thread Andrew Pinski


On Feb 24, 2006, at 4:33 PM, Diego Novillo wrote:


Andrew Pinski wrote:


Did you look into where this was showing up?


No.  Happens on libjava/interpret.cc.  Here's the patch I used and the
stats collecting script, if you're interested in gathering more info.


Actually I know why it is showing up, it is a computed goto.  I had to
remember what was so special about libjava/interpret.cc compared to
the rest of the C++ code.

-- Pinski



GCC-4.1.x include/ssl/*.h ??

2006-02-25 Thread Ralf Corsepius
Hi,

Cross building and installing gcc-4.1.0 rc2 (--prefix=/usr/local)
installs these headers:

/usr/local/include/ssp/unistd.h
/usr/local/include/ssp/string.h
/usr/local/include/ssp/ssp.h
/usr/local/include/ssp/stdio.h

Is this behavior correct?

/usr/local/include is reserved for host files. These files (Seemingly
new in GCC-4.1.x) are the only host files GCC is installing when
building a cross-compiler.

=> I am inclined to think these are installed to the wrong directory.

Ralf