-
Nils Goroll authored
We add an attribute macro which, for gcc, will disable compiler optimizations. The intended use are VCL subs which are called exactly once such that any additional compilation effort is wasteful with respect to the overall vcl.load time. We also decorate the vcc-generated C code for vcl_init and vcl_fini with v_dont_optimize, which is simple and easy: void v_dont_optimize v_matchproto_(vcl_func_f) VGC_function_vcl_fini(VRT_CTX) void v_dont_optimize v_matchproto_(vcl_func_f) VGC_function_vcl_init(VRT_CTX) A more difficult improvement is left to be done: Any custom vcl subs which are called from vcl_init and/or vcl_fini _only_ should also be decorated with v_dont_optimize. With the current code base, determining if a custom sub qualifies would require helper code in vcc_xref to check all uses and return the usage union. As #3163 requires a similar mechanism and because we are about to enter the pre-6.4 release freeze, the better option seems to be to implement this "use mask" when/if #3163 gets in and come back to this optimization then. Closes #3230