Search code examples
coptimizationarmarmcc

ARMCC remove unused variables


I'm trying to remove unused code with Keil ARM tools that use ARMCC compiler. I've previously used GCC based compilers for ARM and I could easily remove the unused code with:

-fdata-sections -ffunction-sections

For ARMCC i found similar flag

--split_sections

but it works only with functions and not with variables.

Is there any way to remove unused variables with ARMCC?


Edit:

For example giving the following library code:

lib.c :

static int veryBigArray[1000000UL];

int func1() { ... }

int func2() { memset(veryBigArray, 0, sizeof(veryBigArray); }

and my project code:

project.c:

int main(void)
{
   func1();
}

I want to remove func2() and veryBigArray using compiler/linker optimizations.


Solution

  • The official answer that we received from ARM support is that currently (ARMCC v5.03 [Build 24]) there is no such option available in ARMCC compiler - They just never thought about such scenario.

    Hopefully it will be added to future ARMCC versions.