This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TMS320F280025C: Compiler CG TI v20.2.0 LTS Performance Adviser Message(#3195-D) When math.h File is Included

Part Number: TMS320F280025C

Tool/software: TI C/C++ Compiler

Hi champs,

I faced one new warning message in "math.h" when I use the latest TI v20.2.0 LTS . The all files including "math.h" generated like the following warning message during compiling.

"C:/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include/_defs.h", line 329 (col. 37): advice #3195-D: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.

This message was not in CG TI v18.x.x LTS. Can I ignore this message?

Thank,

Steve

  • Thank you for notifying us about this problem.  I can reproduce this behavior.  I filed the entry EXT_EP-9776 to have this investigated.  You are welcome to follow it with the link below in my signature.

    There are two workarounds to consider.  One is to disable all performance remarks with the build option --advice:performance=none.  The other is to disable just this specific performance remark with the build option --diag_suppress=3195.

    Thanks and regards,

    -George

  • The new EABI float/double performance advice is intended to advise users when code that may have originally been developed for COFF ABI (for which float doubles are 32-bits), is instead compiled for EABI (for which float doubles are now 64-bits). 

    If the original usage of double was intended only for 32-bit, then when compiled for EABI, slower RTS routines for handling 64-bit doubles will be included in the application.

    However, that advice should only be emitted for user files and not for RTS include headers.

    Any advice with diagnostic id 3195 can be safely ignored for all RTS header files.

    For next release, _def.h and math.h will include updates to diag_suppress 3195 like below (see where both files already ignore diag1558):

    _TI_PROPRIETARY_PRAGMA("diag_suppress 1558") /* --float_operations_allowed checks */
    _TI_PROPRIETARY_PRAGMA("diag_suppress 3195") /* --advice:performance EABI float_operations_allowed checks */

    Until then, you can either, disable all performance advice with --advice:performance=none, or disable only above advice with --diag_suppress=3195

    Regards,

    Greg