> > =20 > I could be wrong here but I think he is unreasonable to conclude this is= =20 > deliberate "de-optimisation". It may be that the code generation stage=20 > of the compiler is simply designed such that it always uses memory=20 > locations to store temporary values (thereby avoiding having to worry=20 > about them being clobbered by instruction groups that need to use W) and= =20 > that the optimiser is expected to remove those memory accesses where it=20 > is safe to do so. Disable the optimiser and you get code that does a=20 > shedload of unnessacery memory access. > --=20 This is also my understanding. No extra code is deliberately added but rather not removed in succesive optimization steps. In XC16 and XC32 you have at least one optimization level even in the free version, which improves code size by about 20-30%. I have done one project with the XC8 free compiler and I ended up going through the disassembly for time critical code areas and did the optimization myself. Not too much work for this small project. I have done several projects with the XC16 and XC32 compilers and have never had any problems. I have also been happy enough with their performance, both speed and size wise. I also recommend MPLABX in favor of MPLAB8. I would never go back even though there still are some problems, especially when debugging but I can manage well enough with an ICD3. Always debug with no optimization though. /Ruben --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .