Pooma where and peephole optimization in CW

John Hall jhh at caverns.com
Sat May 26 22:41:33 UTC 2001


Gang:
I have been trying to get our code (Tecolote 4.0/Pooma R2) to compile 
optimized under Metrowerk's Codewarrior off and on for quite some 
time. The problem always seemed to be in files which contained a 
Pooma where statement involving a Field<MT,double,ET>. Interestingly, 
I could compile code using where statements of type 
Field<MT,Vector<Dim,double>,ET>.

Anyhow, through sheer perseverence I have been able to determine that 
it is the peephole optimization which is causing the problem (an 
internal compiler error). When I turn this option off, I can turn 
every other optimization option on to its highest value and get it to 
work. Since Metrowerk's pays more attention to you guys than to me, I 
thought someone might like to code something like:

    // Make a CompressibleBrick-Engine-based field.

   Field<UniformRectilinear<2>, double, CompressibleBrick>
     fc(cell, layout1, origin, spacings);

   // Test the where statement for a scalar field
     fc = -1.0;
     fc = where(fc > 1.0e-16, fc, 0.0);

   std::cout << fc << std::endl;

and turn the peephole optimizer on and see if they get the same problem.

Error   : internal compiler error: File: 'Operands.c' Line: 814
BasicTest1.cpp line 146   }

Thanks,
John

-- 



More information about the pooma-dev mailing list