florian
1641585655
* updated bcase.pp benchmark by Gareth Moreton, now used also as test
...
git-svn-id: trunk@40710 -
2018-12-30 22:21:03 +00:00
florian
7f5c2fa3aa
* (modified) patch by Gareth Moreton: Speed improvement in case blocks, resolves #0034762
...
This patch improves the compiler where "case" statements are concerned, using jump tables more often and creating more efficient machine code in some situations:
* If a case block only contains one branch (not including the else block), the initial range check is removed, since this becomes wasted effort.
* If the else block is empty, the else label is set to the end label - though this doesn't decrease the code size, it takes a bit of strain off the peephole optimizer.
* On -O2 and above, some node analysis is now done on the branch labels. Most of the time this just redirects it to the end
label for empty blocks, but if the block contains a goto statement, it will redirect it to its destination instead,
thus increasing performance by not having multiple jumps (this won't get picked up by the peephole optimiser if the label addresses are in a jump table).
* Some checks now use what I call the 'true count' rather than the 'label count'. The true count includes each
individual value in a range - for example, 0..2 counts as 3. This increases the chance that a jump table will be
utilised in situations where it is more efficient than a linear list.
* For jump tables, if the case block almost covers the entire range (32 entries or fewer from full coverage),
the initial range check is removed and the gaps included in the jump table (pointing to the else label).
git-svn-id: trunk@40676 -
2018-12-27 18:31:55 +00:00
florian
47c9bca7f2
* number of cycles slightly increased for better measurements
...
git-svn-id: trunk@40161 -
2018-11-01 20:49:19 +00:00
florian
3706ab4e44
* fix formatting of the writing of the fraction
...
git-svn-id: trunk@35235 -
2017-01-04 22:57:43 +00:00
florian
29c28fd710
+ define to be able to use epiktimer for time measurements
...
* write milliseconds correctly when not using epiktimer
git-svn-id: trunk@30471 -
2015-04-06 20:13:19 +00:00
florian
6e11efa664
- remove unneeded variable
...
git-svn-id: trunk@30470 -
2015-04-06 20:10:31 +00:00
florian
ff3295d8fd
* nostackframe is not allowed by newer FPCs for pascal functions/procedure (and was never recommended)
...
git-svn-id: trunk@24870 -
2013-06-11 20:04:33 +00:00
Vincent Snijders
9039afdead
* fixed overflow when calculating frequencies
...
+ added lpi
git-svn-id: trunk@12749 -
2009-02-18 21:16:11 +00:00
Vincent Snijders
78d1b92d2f
* updated to the current version from the shootout
...
git-svn-id: trunk@12748 -
2009-02-18 20:33:03 +00:00
Vincent Snijders
2add1ed6fc
* cleanup on shootout maintainers request
...
git-svn-id: trunk@11864 -
2008-10-04 19:42:45 +00:00
Vincent Snijders
925cfd2fd7
* removed accidentally committed change
...
git-svn-id: trunk@11860 -
2008-10-03 09:02:25 +00:00
Vincent Snijders
f386573a94
+ expected output for meteor benchmark
...
git-svn-id: trunk@11859 -
2008-10-03 08:46:14 +00:00
Vincent Snijders
1c98cda100
* fixed compilation on x86_64
...
git-svn-id: trunk@11858 -
2008-10-03 08:40:37 +00:00
Vincent Snijders
61f26d5a96
* removed compiler directives from source as per Isaac's request
...
git-svn-id: trunk@11857 -
2008-10-03 08:03:54 +00:00
Vincent Snijders
4c6d62f954
* fixed mandelbrot shootout benchmark for non i386 targets
...
git-svn-id: trunk@11850 -
2008-10-02 17:50:01 +00:00
Vincent Snijders
dad6f27de7
* another attempt to put the expected mandlebrot test output in svn
...
git-svn-id: trunk@11817 -
2008-09-22 11:04:00 +00:00
Vincent Snijders
70bbdb52ee
* add real mandelbrot test output for n=200
...
git-svn-id: trunk@11815 -
2008-09-21 20:48:44 +00:00
Vincent Snijders
37164fa182
+ mandelbrot test output for n=200
...
git-svn-id: trunk@11814 -
2008-09-21 19:47:35 +00:00
florian
0a6887a874
* fixed timer unit name
...
git-svn-id: trunk@11476 -
2008-07-28 16:18:42 +00:00
florian
076df335e8
+ benchmark to test md5 improvement by internal rol
...
git-svn-id: trunk@11471 -
2008-07-28 12:47:24 +00:00
florian
5c1c5f2aad
* write timing to stderr
...
git-svn-id: trunk@11091 -
2008-05-27 09:35:07 +00:00
Jonas Maebe
284ebc9d4a
- deleted since it has been renamed to n_body
...
git-svn-id: trunk@9691 -
2008-01-09 00:14:30 +00:00
Vincent Snijders
25f0653c88
* renamed nbody to n_body
...
git-svn-id: trunk@9677 -
2008-01-08 10:31:00 +00:00
Vincent Snijders
e5ddfc8248
+ current version of nbody benchmark
...
git-svn-id: trunk@9676 -
2008-01-08 08:14:04 +00:00
Vincent Snijders
46ca7ee46a
o improved sumcol benchmark
...
* read line in string and convert to integer using val, like gcc does
* cache input text file, to avoid calling fpc_get_input all the time.
git-svn-id: trunk@9671 -
2008-01-07 13:51:34 +00:00
Vincent Snijders
2fb2712029
* current version of sumcol benchmark by Steve Fisher
...
git-svn-id: trunk@9670 -
2008-01-07 12:30:58 +00:00
Vincent Snijders
27b810b732
* cleanup
...
git-svn-id: trunk@9669 -
2008-01-07 12:20:48 +00:00
Vincent Snijders
a1f7a9086c
* improved fannkuch benchmark
...
git-svn-id: trunk@9668 -
2008-01-07 11:09:07 +00:00
Vincent Snijders
4958973566
improved version of mandelbrot benchmark, uses now sse2 exclusively.
...
git-svn-id: trunk@9615 -
2008-01-02 15:18:25 +00:00
Marc Weustink
59f08ab878
+ added shootout thread-ring benchmark
...
git-svn-id: trunk@9246 -
2007-11-13 21:53:53 +00:00
florian
c96bcd8340
+ new fannkuch.pp from S. Fisher
...
git-svn-id: trunk@9150 -
2007-11-07 20:15:50 +00:00
peter
94a0e6de1b
* fixed off-by-one by S. Fisher
...
git-svn-id: trunk@9144 -
2007-11-05 21:15:50 +00:00
peter
d97d098a1c
* optimize loop to use pchar
...
git-svn-id: trunk@9143 -
2007-11-05 20:27:24 +00:00
peter
b741d5f2a3
* regex implementation from S. Fisher
...
git-svn-id: trunk@9142 -
2007-11-05 19:40:33 +00:00
florian
89d51b6dcf
* updated to latest shootout version
...
git-svn-id: trunk@8964 -
2007-10-28 10:15:31 +00:00
Vincent Snijders
a9b0952c77
* added mode objfpc to prevent alignment problems
...
git-svn-id: trunk@8926 -
2007-10-25 14:34:01 +00:00
peter
5b43775060
* code from shootout
...
git-svn-id: trunk@8621 -
2007-09-23 14:55:58 +00:00
florian
aa76355045
+ fasta benchmark added
...
git-svn-id: trunk@8615 -
2007-09-23 14:05:44 +00:00
Vincent Snijders
956d5e1c91
* improved recursive benchmark
...
git-svn-id: trunk@8592 -
2007-09-21 14:07:35 +00:00
daniel
d6e6e39d16
* Minor changes.
...
git-svn-id: trunk@7580 -
2007-06-05 07:53:55 +00:00
daniel
023be72367
+ Pascal conversion of Stream benchmark.
...
git-svn-id: trunk@7579 -
2007-06-05 07:06:01 +00:00
peter
0605a67968
* new implementation
...
git-svn-id: trunk@7500 -
2007-05-28 16:10:15 +00:00
peter
b9a384ba08
* multiple fpc version support for shootout
...
git-svn-id: trunk@7494 -
2007-05-28 11:59:10 +00:00
daniel
86ae9d5475
* Make it work under Linux.
...
git-svn-id: trunk@7482 -
2007-05-26 14:56:09 +00:00
micha
4b73505019
* make bansi1 bench multi threaded, in bansi1mt
...
git-svn-id: trunk@7459 -
2007-05-24 20:16:49 +00:00
micha
b51f0d5e20
* make blists1 bench more detailed
...
git-svn-id: trunk@7458 -
2007-05-24 20:16:14 +00:00
daniel
4edf4de955
+ Meteor benchmark
...
git-svn-id: trunk@7197 -
2007-04-29 19:19:16 +00:00
Vincent Snijders
4bb6ca2e51
* faster and less memory consuming version as submitted to the shootout
...
git-svn-id: trunk@5702 -
2006-12-24 18:20:28 +00:00
florian
c81f69a82a
* renamed
...
git-svn-id: trunk@5685 -
2006-12-22 19:05:24 +00:00
florian
d105f287c7
* TFPList benchmark old vs. generic
...
git-svn-id: trunk@5684 -
2006-12-22 19:04:15 +00:00