On April 12, 2014 9:53:51 PM GMT+08:00, grischka <[email protected]> wrote: > > Good, however note that the mechanism to perform token pasting > via > tcc_open_bf(tcc_state, ":paste:", cstr.size); > is extremely slow and per se has a good share in making current > tcc about twice as slow compiling itself compared to 0.9.25.
You mean even without this patch tcc is already slower than for 0.9.26? > > Now I observe that (in self compilation) token pasting happens > 3113 times, however the fix (which as the comment suggests is to > improve certain cases of token pasting) runs similar code additional > 22669 times. This raises some questions. o_O Strange indeed. I see two ways to reduce the cost of this patch. First one is to rename next_nomacro1 become next_nomacro2 that would take a char * pointer to the buffer to parse for tokens and create a next_nomacro1 wrapper for compatibility. Then tcc_open_bf would not be necessary. It could maybe allow to remove another tcc_open_bf in the same function. A second solution would be to create a new function capable of identifying all the cases where a space needs to be added. That would duplicate part of what next_nomacro1 already know about tokens but should be quite a small function and would be faster. Maybe the first change should be done anyway if choosing the second approach for the already existing call to tcc_open_bf in macro_twosharps. Thanks for monitoring performance regression grischka. Cheers, Thomas _______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
