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

Reply via email to