11.07.2015 Views

Imagecraft c compiler and development environment for the atmel avr

Imagecraft c compiler and development environment for the atmel avr

Imagecraft c compiler and development environment for the atmel avr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ICCV8 <strong>for</strong> AVR – C Compiler <strong>for</strong> Atmel AVR Advanced Local Variable Stack Allocation.Even with <strong>the</strong> advanced register allocator, sometimes <strong>the</strong> target CPU just doesnot have enough machine registers to keep all of <strong>the</strong> c<strong>and</strong>idate local variables inregisters. These unallocated variables must be put on <strong>the</strong> stack. However, a largestack offset is generally less efficient on most target CPUs. By utilizing <strong>the</strong> samefast algorithm, <strong>the</strong> backend packs <strong>the</strong> unallocated variables optimally, sharingspace with each o<strong>the</strong>r if possible, reducing <strong>the</strong> total size of <strong>the</strong> function stackframe.ImageCraft has invested a considerable amount of ef<strong>for</strong>t on putting a state-of-<strong>the</strong>-artoptimizer infrastructure in place. Currently <strong>the</strong> MIO optimizations benefit mainlyexecution speed <strong>and</strong> some small improvement in code size. We will continue to tune<strong>the</strong> optimizer <strong>and</strong> add in new optimizations as time progresses.The code compression optimization may be enabled in addition to <strong>the</strong> MIOoptimizations. This combination gives you <strong>the</strong> smallest code while alleviating some of<strong>the</strong> speed degradation introduced by <strong>the</strong> Code Compressor.Mixed Arithmetic Type OptimizationsImageCraft <strong>compiler</strong>s minimize <strong>the</strong> integer promotions dictated by <strong>the</strong> C St<strong>and</strong>ard aslong as <strong>the</strong> correct results are produced. The base STANDARD per<strong>for</strong>ms basicoptimizations (e.g., byte operations are used whenever possible <strong>for</strong> 8-bit targets) <strong>and</strong><strong>the</strong> PROFESSIONAL edition per<strong>for</strong>m more aggressive optimizations (e.g. ,16-bitmultiply with 32-bit result is used when it makes sense ra<strong>the</strong>r than promoting bothoper<strong>and</strong>s to 32-bits <strong>and</strong> <strong>the</strong>n use <strong>the</strong> slower 32-bit multiply).25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!