Re: Ada subtypes and base types
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
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
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
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 ??
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