This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C compiler optimazation

Hallo

I have been looking into compiler optimazation. My project has a level of 0 - No optimazation
As I can read from the help file, default is level 2. Using level 2 will decrease the size but also remove the possiblity to debug.
Thats ok for released version of the software.

But are there any benefits, other then smaller code size, using compiler optimazation? I mean, is there any performance gain ? Better interrupt respons etc?
I don't have any problem fitting un-optimized code into the flash.

But if using optimazation makes it hard to debug, then its difficult to "debug" any problems caused by the optimazation? Is there any gurantie, that if the code work with no optimazation, then its behaves the same with optimazations on??

/Thomas

Parents
  • But are there any benefits, other then smaller code size, using compiler optimazation? I mean, is there any performance gain ? Better interrupt respons etc?

    Those are the exact reasons for doing optimization. If you are satisfied with code size and performance of your application at optimization level 0, you don't need to recompile it at higher optimization levels.
    There is more to it. Raising optimization level can trigger bugs in the code that don't show at lower optimization levels. So by staying at optimization level 0 you can skip the extra testing required to find those bugs (saves you time.) But if you must maintain that code long-term, you'll probably want to use every opportunity to find bugs, so raising optimization level could be a good idea.

Reply
  • But are there any benefits, other then smaller code size, using compiler optimazation? I mean, is there any performance gain ? Better interrupt respons etc?

    Those are the exact reasons for doing optimization. If you are satisfied with code size and performance of your application at optimization level 0, you don't need to recompile it at higher optimization levels.
    There is more to it. Raising optimization level can trigger bugs in the code that don't show at lower optimization levels. So by staying at optimization level 0 you can skip the extra testing required to find those bugs (saves you time.) But if you must maintain that code long-term, you'll probably want to use every opportunity to find bugs, so raising optimization level could be a good idea.

Children
No data