- Calls to a function with inputs of different types (like foo(1) vs foo('hello')). Those are unavoidable.
- Calls to a function with inputs of different sizes. This you can prevent by coder.ignoreSize at call sites. You can create a thin wrapper on the function that contains ignore size and calls the main function, so you don't have to modify each call site.
- Calls to a function with constant inputs of different values (that's where you'd use ignoreConst). This should not happen unless the function really needs those constant inputs.
Is there a way to turn off function specialization for a function or all functions
2 visualizaciones (últimos 30 días)
Nathan Royer el 16 de Ag. de 2022
I do not want any function specialization as I'm targeting code generation for a small memory footprint. Is there a way to turn this off for all fucntions in a project, or for all invocations of a function?
There is coder.ignoreSize and coder.ignoreConst but it requires modifying each invocation of a function to add the coder.ignoreSize or coder.ignoreConst.
Denis Gurchenkov el 16 de Ag. de 2022
Hi Nathan, no, unfortunately there is no blanket way to do so.
Specialization happens in 3 cases:
If you are able to attach an example shoing the pain, what kind of function you have and how it gets unnecesarily specialized, I can pass this to the development team and ask to take into consideration. But for a quick workaround, unfortunately, creating thin wrappers that use coder.ignoreSize and/or Const are the only optins I can think of.