This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: notes on CVS libstdc++ and CSV egcs


Benjamin Kosnik <bkoz@cygnus.com> writes:

| As of this,
| 
| 1999-12-13  Benjamin Kosnik  <bkoz@gnu.org>
| 
| 	Efforts to get -O2 to work with -Winline -Werrors.
| 	* bits/valarray_array.h (__valarray_fill(_Tp*, size_t, const
| 	_Tp&): Remove inline declaration, as cannot be inlined and
| 	-Winline -Werror complains. An interesting question is why this
| 	cannot be inlined, as I can see no real reason to disqualify it.
| 	(__valarray_product(const _Tp*, const _Tp*)): Same here.
| 	* bits/std_valarray.h (valarray::operator[](size_t)): Same here.
| 	
| 	* docs/17_intro/TODO: Update.
| 
| CVS libstdc++-v3 can be compiled with CVS egcs and -O2 -Winline
| -Werrors, thus exercising the new tree-based inliner. I am a bit
| worried that I had to undeclare functions like this as inline to get
| it to compile cleanly:
| 
|   template<typename _Tp>
|   _Tp&
|   valarray<_Tp>::operator[] (size_t __i)
|   { return _M_data[__i]; }
| 
| Perhaps there is more going on here than I have time to look at right now.
| 
| Gaby, perhaps you can look into this? I believe that gcc-2.95.2 also
| couldn't inline this, so it isn't a regression per se, just something
| that I'd think could be inlined. (There are also some valarray-related
| things that I entered into the TODO list that you might want to take a
| look at.)

Yes, it is odd that GCC-2.92.2 can't inline the functions mentioned
above.  I'll try to find out why and fix the code appropriately.  But
as you said several times in other messages, it would be *very* hepful
if GCC can tell us why it can't inline some functions. 

-- Gaby

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]