Thomas Jarosch
3c915b534d
Match compiler: Collect and cache plain C-strings
...
Profiler runs with gperftools showed we were spending
a lot of time in strlen() even with compiled match patterns.
If you compare a std::string with a plain C-string,
the comparison operator needs to calculate the length
of the C-string via strlen().
We can avoid this by turning all C-strings into C++ strings,
which cache the string length internally.
The match compiler has been adapted to collect all
C-strings during compilation and aggregate them.
Benchmark on the 'rpm' code base on a Core i7 920 box:
cppcheck without matchcompiler:
real 0m30.977s
cppcheck with previous matchcompiler:
real 0m28.157s
cppcheck with cached C-strings:
real 0m17.823s
2012-12-30 23:24:28 +01:00
Thomas Jarosch
fe5ee76165
Match compiler: No need to handle %num% twice
2012-12-30 20:33:49 +01:00
Thomas Jarosch
33f4bd0298
Silence cppcheck warning
2012-12-25 15:28:58 +01:00
Thomas Jarosch
3d0b4a9f7e
Add execute permissions to matchcompiler.py on linux
2012-12-25 13:18:24 +01:00
Thomas Jarosch
a2885a1759
Python 3 compatibility for the helper scripts
...
print() is a function in python 3.
Works with pyhton 2.x, too.
2012-12-25 13:12:58 +01:00
Daniel Marjamäki
3b3fe1c616
matchcompiler: throw InternalError if Token::Match is called with the varid 0
2012-12-19 06:45:05 +01:00
XhmikosR
9f11c01450
apply astyle
2012-12-15 09:46:02 +01:00
Daniel Marjamäki
b6786c87b4
matchcompiler: handle %varid%
2012-12-14 16:59:37 +01:00
Daniel Marjamäki
7c931960bd
Merge pull request #123 from Keruspe/master
...
build: Fix sources location
2012-12-11 11:13:39 -08:00
Marc-Antoine Perennou
cd9782472f
build: rename LIBDIR to SRCDIR
...
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-12-11 09:30:37 +01:00
Daniel Marjamäki
2d8ed65d43
compiled Token::Match patterns: refactorings,improvements
2012-12-10 20:28:11 +01:00
Daniel Marjamäki
a11ec4a5ee
matchcompiler: replaced regular expression with simple code that parses the code better
2012-12-08 19:29:16 +01:00
Daniel Marjamäki
9fcfb38a1c
matchcompiler: merged regular expressions to a single expression
2012-12-08 16:22:55 +01:00
Daniel Marjamäki
bef0cf149b
matchcompiler: reverted changes so the 'make test' works again
2012-12-08 07:41:18 +01:00
Daniel Marjamäki
9bd222970e
matchcompiler: fixed hang. don't know why it hangs.
2012-12-04 23:38:49 +01:00
Daniel Marjamäki
ae7846bf7e
matchcompiler: added some selftests for findMatchPattern
2012-12-04 22:57:52 +01:00
Daniel Marjamäki
514d06b015
Makefile: minor cleanup
2012-12-03 06:34:43 +01:00
Daniel Marjamäki
94930c3bd7
Compiled Token::Match patterns: let 'make clean' cleanup compiled patterns
2012-12-02 13:42:48 +01:00
Daniel Marjamäki
ef5eece286
Compiled Token::Match patterns: extended match patterns and refactored the script a little
2012-12-02 13:39:59 +01:00
Daniel Marjamäki
d630d34b62
Compiled Token::Match patterns. Added python script solution. Python is required to build with compiled patterns. To build cppcheck with compiled patterns use 'make LIBDIR=build'.
2012-12-02 12:36:55 +01:00
Daniel Marjamäki
29263e63fe
times: added shell script that executes previous tags
2012-11-30 12:12:04 +01:00
Daniel Marjamäki
ea9f0718b0
tools/times: minor tweaks
2012-11-27 12:20:23 +01:00
Daniel Marjamäki
b200e1c430
tools/times: tweaked shell script to work better
2012-11-27 07:24:18 +01:00
Daniel Marjamäki
1ebab4a442
tools/times: added simple scripts to generate time stats for cppcheck
2012-11-27 06:08:26 +01:00
XhmikosR
941945bf42
missing tab to space
2012-09-29 18:02:34 +02:00
XhmikosR
9b5c245899
tabs to spaces, remove trailing spaces and extra empty lines at the end of files
2012-09-29 13:49:16 +02:00
Daniel Marjamäki
ce862e02aa
dmake: New version of TinyXml needs -DTIXML_USE_STL define in linux
2012-09-09 13:08:04 +02:00
Edoardo Prezioso
826d5bb00b
Since the GCC -Wconversion warnings are fixed (at least on a x86-64 environment), enable it in the Makefile.
2012-07-18 00:50:30 +02:00
Kimmo Varis
fe9e6130cf
Add general PRO file for console builds.
...
It is easier to maintain PRO files when we keep all the console-
build specific general options in one file. For example changes to
compiler options affect to all console builds.
2012-06-18 09:28:32 +03:00
Daniel Marjamäki
f98179a835
astyle formatting
2012-06-18 06:41:04 +02:00
Kimmo Varis
7b603813d7
dmake: Apply small fix from Dan.
...
This fixes the potential (but not likely to happen) case when
file list is empty. Dan suggested this change when reviewing my
earlier patch.
2012-06-11 22:09:09 +03:00
Kimmo Varis
734d4af007
Tests: Generate test file listing with dmake.
...
Use dmake to generate a test/testfiles.pri with all the files
containing tests. The testfiles.pri is included by the test/test.pro,
which compiles the test runner. This automates the test file listing
instead of former way to hand-edit the file list.
Fixes ticket #3885 (dmake needs to create a list of test files for qmake)
2012-06-11 22:05:55 +03:00
Kimmo Varis
be21a44dd2
Tools: Adding a tools.pro to build dmake.
2012-06-11 14:45:32 +03:00
Daniel Marjamäki
16427b40b9
dmake: move . this fixes compiler errors when compiling with some old gcc 3.X compiler
2012-02-26 10:18:21 +01:00
Edoardo Prezioso
f37f13c3ad
Fixed typo in make file generation.
2012-02-17 20:12:41 +01:00
Daniel Marjamäki
f183954150
dmake: keep some dummy debug code in release Makefiles to make the debug/release more similar
2012-02-12 03:30:58 +01:00
Edoardo Prezioso
f20e88fcc5
tools/dmake.cpp: nitpicky reorder of commented warnings in alphabet order with uncommented ones.
2012-01-03 15:10:32 +01:00
Reijo Tomperi
8cae17fda8
Update year to 2012
2012-01-01 01:05:37 +02:00
Daniel Marjamäki
5cc5330d95
extracttests.py: reverted last change. see comments on github.
2011-12-07 21:49:34 +01:00
Daniel Marjamäki
ab348387b5
extracttests.py: python 3 compatibility updates
2011-12-07 17:05:24 +01:00
Daniel Marjamäki
e9546c5042
extracttests.py: create output folders if they dont exist
2011-12-04 21:46:56 +01:00
Daniel Marjamäki
8e9097bce7
extractpython.py: cleanup
2011-12-02 19:08:04 +01:00
Daniel Marjamäki
712ca42985
extracttests: refactorings. dont include dynamic strings in the listing
2011-12-02 18:33:17 +01:00
Daniel Marjamäki
ca9dbfc031
extracttests.py : improved errors.txt output
2011-11-29 21:35:57 +01:00
Akio Idehara
baa97d53fc
Fixed #3346 (cygwin detection for _GLIBCXX_DEBUG in Makefile)
2011-11-29 20:35:56 +01:00
Daniel Marjamäki
932680994d
removed old extracttests.cpp
2011-11-29 17:43:23 +01:00
Daniel Marjamäki
16ae2f49ca
extracttests.py: minor code fixes of --code handling
2011-11-29 10:13:37 +01:00
Daniel Marjamäki
7624313808
extracttests.py: added option to output test files
2011-11-28 22:17:06 +01:00
Daniel Marjamäki
c0770f0823
extracttests.py: improved command line parser
2011-11-27 17:11:38 +01:00
Daniel Marjamäki
ac06f34627
extracttests.py: cleaned up the code for parsing of command line
2011-11-27 15:24:13 +01:00