Developer Guide and Reference


GAP Message (Diagnostic ID 30758)


Remove unused field(s) "%s" from the struct "%s".
This message is emitted even without whole-program recognition in advanced mode.


Some unused fields were seen in a class or structure type. If the unused fields can be removed from the structure definition, it will lead to reduced memory usage and better cache utilization since the cache will no longer be filled with unused data.
The advice is based on the analysis of the source code that is seen. You must verify that the fields that are reported as unused are not accessed elsewhere in the application. You also need to be careful when removing unused fields if the code relies on the structure fields to be laid out in a specific order. As an example, if the application code uses the address of a field to access other fields, it may stop working once unused fields are removed. Note that such code is not considered valid in the first place.
Consider the following:
//unused_field_2.c struct str { int a1, b1, c1, d1, e1; };   extern struct str sp[];   int hot_func1() { int i, ret = 0;   for (i = 0; i < 1000000; i++) { ret += sp[i].a1; ret += sp[i].b1; } return ret; }   int hot_func2() { int ret = 0, i; for (i = 0; i < 1000000; i++) { ret += sp[i].a1; ret -= sp[i].c1; } return ret; }   int hot_func3() { int ret = 0, i; for (i = 0; i < 1000000; i++) { ret += sp[i].d1; } return ret; }
In this case, if the unused fields can be removed, the only source change needed would be the following:
//unused_field_2.c struct str { int a1, b1, c1, d1; }; ...


The suggestion is based on the field references in the current compilation. Please make sure that there are no references to these fields across the entire application.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804