This adds a simple code profiler that leverages both SysTick and
the Performance Monitoring Unit (PMU) available on Armv8.1-M cores.
SysTick provides a simple high-resolution timer source, while the PMU
offers a cycle counter and multiple configurable event counters that
can track low-level performance metrics such as cache misses, pipeline
stalls, etc... See the Armv8.1-M Performance Monitoring User Guide
for additional details.
Function-level instrumentation is enabled using -finstrument-functions
on select files to automatically record statistics on entry/exit.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>