Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/29/05 17:40
Read: times


 
#96215 - Really Wicked Optimisations!
Responding to: ???'s previous message
Erik Malund said:
rules for optimum '51 C
1) Take the darn PC hat off. '51 C is not "just c"
2) ALWAYS use the smallest size of a variable that will fit
3) Make counters in loops -- instead of ++ wherever possible
4) Keil has - on request - provided for things like malloc, that does not mean they are "good" it is a disaster in a '51
5) The '51 has very powerful bit instructions - USE THEM. E.g. if a function can return TRUE or FALSE a bit is enough.

Some more:

6) Always use unsigned where possible

7) DATA access is fastest, and uses least code; IDATA is next best; PDATA is next best; XDATA is worst (for both speed & code size). Therefore, put your most-accessed variables in DATA; put loop counters in DATA; put anything needing fastest access in DATA, etc

8) Avoid floating point

9) Remember, printf takes a lot of code!

10) Make maximum use of local variables - they are overlayable, globals aren't (but don't forget that passing parameters around takes code - especially if you go over the limit that the compiler can pass in registers)



List of 54 messages in thread
TopicAuthorDate
code optimization            01/01/70 00:00      
   erm...            01/01/70 00:00      
   guidelines            01/01/70 00:00      
   Duh !!!!            01/01/70 00:00      
      yes its a link to learn optimization            01/01/70 00:00      
         the links provided            01/01/70 00:00      
            Really Wicked Optimisations!            01/01/70 00:00      
            counters in loops?            01/01/70 00:00      
               DJNZ            01/01/70 00:00      
                  ahh            01/01/70 00:00      
                  DOES it ?            01/01/70 00:00      
                     on Keil forum            01/01/70 00:00      
                     Yes!            01/01/70 00:00      
                     Of course it does...            01/01/70 00:00      
                        But...            01/01/70 00:00      
                           asking too much            01/01/70 00:00      
                              Not at all            01/01/70 00:00      
                           Maybe it does...            01/01/70 00:00      
                              Not when I tried it.            01/01/70 00:00      
                                 Lopp Rtation            01/01/70 00:00      
                        While you're there, Jon...            01/01/70 00:00      
                           how like a salt block?            01/01/70 00:00      
                              oh -- got it            01/01/70 00:00      
                           Overlaying and Scope            01/01/70 00:00      
                              Does it matter?            01/01/70 00:00      
                                 debugging            01/01/70 00:00      
   Previously on 8052.com            01/01/70 00:00      
      yes its in the board            01/01/70 00:00      
      IAR Article - Getting the Least            01/01/70 00:00      
   To be taken with a pinch of salt            01/01/70 00:00      
      more like a salt block            01/01/70 00:00      
      Re            01/01/70 00:00      
         switch            01/01/70 00:00      
            Switch/Case Optimization            01/01/70 00:00      
               Re: Switch/Case Optimization            01/01/70 00:00      
                  Look Why            01/01/70 00:00      
               Jon, I may have made a mistake            01/01/70 00:00      
         Big switches            01/01/70 00:00      
         Was?            01/01/70 00:00      
            Link to newer version            01/01/70 00:00      
               Hitex; Chris Hills            01/01/70 00:00      
                  Draft!            01/01/70 00:00      
   intermediate values in lookup tables            01/01/70 00:00      
      Generating lookup tables            01/01/70 00:00      
   a general statement on code optimization            01/01/70 00:00      
      Craft            01/01/70 00:00      
      Corrections            01/01/70 00:00      
         urban legends            01/01/70 00:00      
            Been there.            01/01/70 00:00      
               I think this is closer to the truth            01/01/70 00:00      
                  I just realize that the above            01/01/70 00:00      
               EE/CS            01/01/70 00:00      
            Micro-Optimisations - real-life example            01/01/70 00:00      
               manual optimization            01/01/70 00:00      

Back to Subject List