add -fprof-late-overloaded and -fprof-late-overloaded-calls
These flags aim to help increase observability regarding which functions are being called at an unspecialised type. -fprof-late-overloaded
adds cost centres to top-level overloaded bindings. -fprof-late-overloaded-calls
adds cost centres to function applications that include dictionary arguments. Some care is taken to ensure we don't annotate internal/non-user functions.
- Refactor late cost centre insertion for extensibility
- Add two more late cost centre insertion methods that add SCCs to overloaded top level bindings and call sites with dictionary arguments.
- Some tests for the basic functionality of the new insertion methods
Resolves: #24500 (closed)