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

Common Code Elimination

Common Code Elimination

cortex-m3 uVision 5.13

I recent had to up the optimization level on my project to level 2 because my code size was too large for my target memory. In doing this I found that it seems to be doing common code elimination where valid routines are not being compiled/linked into the image.

This has caused some routines to be practically wiped out because another is very similar but has some differences. I guess they were common enough for the compiler to decide to get rid of one of them.

I have been Googling and searching everywhere for a way to turn off just the common code elimination but cannot find anything that I can use with uVision.

There is a C51 pragma to change the optimization level to stop this on a file by file basis but the uVision compile causes a error.

There must be a way to turn this off. I understand it is trying to save me space but it is also changing or in some cases eliminating functionality.

Does anyone know of a pragma that will work or something I can do?

Thanks

P.S. of course this happens 2 days before a major delivery on a weekend!!

Parents
  • I understand it is trying to save me space but it is also changing or in some cases eliminating functionality.

    You've yet to actually convince anyone that it did eliminate functionality. So far you've only talked about it eliminating code. You don't seem to have bothered checking the difference between those two.

Reply
  • I understand it is trying to save me space but it is also changing or in some cases eliminating functionality.

    You've yet to actually convince anyone that it did eliminate functionality. So far you've only talked about it eliminating code. You don't seem to have bothered checking the difference between those two.

Children