[pooma-dev] AltView* classes

Jeffrey D. Oldham oldham at codesourcery.com
Tue Mar 2 16:19:09 UTC 2004


James Crotinger wrote:
> Hi Richard,
> 
> This tickled a neuron the other day, but I couldn't recall the details.
> 
> The AltView classes were put in to reduce link times and sizes for large 
> codes. The classes that have enums end up having a link-time cost, both 
> in space and time. I believe this refactoring was done to reduce the 
> cardinality of classes having the "sv" enum. My recollection is that 
> this, and other similar "optimizations", had a pretty substantial impact 
> on link-time for Blanca. Unless these are hurting something else, I 
> would tend to leave them in.
> 
> Does the CodeSourcery CVS repository have complete CVS history? (i.e. 
> did we copy the repository, or just the head version?) This should have 
> been easy to determine via CVS.

The POOMA CVS repository history goes back to at least 1998 March.  For 
example, see the log for src/Array/Array.h.  This log gives an entry for 
AltView0 and AltView1Implementation:

revision 1.141
date: 2001/05/25 17:42:48;  author: oldham;  state: Exp;  lines: +47 -6
branches:  1.141.4;
2001-05-25  Jeffrey D. Oldham <oldham at codesourcery.com>
	* Array/Array.h (View0): Modify initial comment to indicate
	changes should also be made to AltView0.
	(AltView0): New class to avoid explicit instantiation problems.
	(ComponentView): Modify initial comment to indicate class should
	not be explicitly instantiated.
	(Array::read()): Change return type to AltView0.
	(Array::operator()()): Likewise.

	* NewField/Field.h (View1Implementation): Modify initial comment
	to indicate changes should also be made to AltView1Implementation.
	(AltView1Implementation): New class to avoid explicit
	instantiation problems.
	(View1): Modify initial comment to indicate changes should also be
	made to AltView1.
	(AltView1): New class to avoid explicit instantiation problems.
	(Field::read()): Change return type to AltView1.
	(Field::readAll()): Likewise.
	(Field::read(s1)): Likewise.
	(Field::operator()()): Likewise.
	(Field::all()): Likewise.
	(Field::operator()(s1)): Likewise.

Perhaps this will jog Jim's memory more.  I do not remember much about this.
-- 
Jeffrey D. Oldham
oldham at codesourcery.com



More information about the pooma-dev mailing list