tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] Allow tcc arguments to be read from @listfiles


From: Vladimir Vissoultchev
Subject: [Tinycc-devel] Allow tcc arguments to be read from @listfiles
Date: Tue, 12 Apr 2016 21:36:42 +0300

Hi,

The first patch allows sourcefile names to be passed in external listfiles
in the way most compressing utilities (7-zip) work. Listfiles are passed on
the command-line as '@' prefixed filenames and can contain tcc options
besides source files, each on a separate line, starting whitespace is
ignored.

The second patch is just an expansion of winapi header files to be able to
compile nginx under windows w/ tcc. Here are results from -bench on 5 times
multiplied nginx source files:

C> tcc.exe -bench -c -D__GNUC__=4 -I src/core -I src/event -I
src/event/modules -I src/os/win32 -I objs -I src/http -I src/http/modules
@files.txt
26240 idents, 23577025 lines, 846521725 bytes, 16.506 s, 1428391 lines/s,
51.3 MB/s

Here is a report by function from VS profiler on this bench run:

Function Name    Inclusive Samples  Exclusive Samples   Inclusive Samples %
Exclusive Samples %
---------------- ------------------ ------------------- -------------------
-------------------
__open           5057               5057                32.20
32.20
next_nomacro1    11089              2602                70.61
16.57
_free            1059               1059                 6.74
6.74
_realloc         885                885                  5.64
5.64
_malloc          862                862                  5.49
5.49
__read           717                717                  4.57
4.57
__close          556                556                  3.54
3.54
preprocess_skip  564                465                  3.59
2.96
next             13149              279                 83.72
1.78
TOK_GET          239                239                  1.52
1.52
next_nomacro_spc 11868              193                 75.57
1.23
macro_subst      856                165                  5.45
1.05
memcpy           136                136                  0.87
0.87
parse_btype      1802               130                 11.47
0.83

It seems the process is I/O bound with builtin `__open` being first but the
low hanging fruit is `next_nomacro1` function

cheers,
</wqw>

Attachment: patches_2016_04_12.zip
Description: Zip compressed data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]