How to discover if 'Architecture Optimised Method' for task priorities is supported?


I would like to know if the ‘Architecture Optimised Method’ for task priorities is supported for the ARM Cortex-M7?
I defined configUSE_PORT_OPTIMISED_TASK_SELECTION as 1 in FreeRTOSConfig.h and I don’t seem to get any compilation errors, but I’m not sure if that means I can assume it is supported.

For future use, I would also like to know how one can find out if this method is supported on a certain processor? Is there a list of supported devices somewhere?

Thanks in advance!

If you enable configUSE_PORT_OPTIMISED_TASK_SELECTION and get a clean build you can be sure everything is fine. In this particular case the optimization relies on the ARM CLZ (count leading zeroes) instruction available on I think all 32 bit ARM MCUs if the number of priorities doesn’t exceed 32 which is the number of bits a processor register of a 32 bit ARM processor has. If enabled and the CLZ instruction wouldn’t be supported you’d get a compiler/assembler error.
Usually all architecture specifics are covered transparently by the appropriate portable layer. This OS optimization is an exception because it’s worth to enable it due to the considerable performance gain if 32 priorities are sufficient.