SuiteSparse:GraphBLAS: graph algorithms in the language of linear algebra. For production: (default) STABLE branch. Code development: ask me for the right branch before submitting a PR. video intro: https://youtu.be/Tj5y6d7FegI .
Right now compilation is controlled in one of two ways: globally with GxB_JIT_C_CONTROL and quasi-local control in the form of type / operator definitions (providing a definition enables JIT, not providing one disables it. This is a one time switch though).
I would like to allow users more manual control, and to allow me to JIT only when I deem it worth the overhead. I propose allowing GxB_JIT_C_CONTROL to be set on individual operators and types as well. I believe I understand the compilation pipeline relatively well now, and I don't think the overhead to do this would be too extreme (as the JIT works currently).
That wouldn't be too hard to do, like GrB_set (operator, GxB_JIT_C_CONTROL, GxB_JIT_OFF) or something. It could be done for types, monoids, ops, semirings, etc without much difficulty.
Right now compilation is controlled in one of two ways: globally with
GxB_JIT_C_CONTROL
and quasi-local control in the form of type / operator definitions (providing a definition enables JIT, not providing one disables it. This is a one time switch though).I would like to allow users more manual control, and to allow me to JIT only when I deem it worth the overhead. I propose allowing
GxB_JIT_C_CONTROL
to be set on individual operators and types as well. I believe I understand the compilation pipeline relatively well now, and I don't think the overhead to do this would be too extreme (as the JIT works currently).The default would be the same as the global.