KarolS / millfork-benchmarks

Benchmarks for the Millfork programming language
MIT License
7 stars 1 forks source link

recent prog8 version creates better code, also linkedlist benchmark was added #8

Open irmen opened 3 years ago

irmen commented 3 years ago

Hello, I've just released prog8 6.4 It contains once again various code generation improvements. (mostly added in 6.1) Most notably, the plasma benchmark now runs faster than the optimized cc65 one. Also i've added the linkedlist benchmark that was missing until now.

It would be awesome, if you could update the graphs with the new results? (it does first require some slight changes in the prog8 benchmark programs because of the changes to the language and libraries. The pull request for that is linked below.)

I've now pretty much exhausted the possibilities of easy to moderately complex code generation optimizations in Prog8. Further improvements will require quite a lot of work, I think, something I don't have the time for any time soon.

zbyti commented 3 years ago

@irmen if I remember correctly you use stack a lot in prog8.

irmen commented 3 years ago

Yes @zbyti that is necessary because the cpu is extremely register starved, and because of the c like expression trees that you can write in prog8. I have some vague ideas on how to improve that but that will require a total rewrite of the expression code generation....

irmen commented 2 years ago

@zbyti i've been making some progress on reducing the simulated eval-stack in prog8 lately

zbyti commented 2 years ago

@irmen Cool, I'll check it out soon. Now I'm in a bit of a rush to release some simple A8 game on https://www.sillyventure.eu/en/ and after that I'll take a thorough look at the new changes.

irmen commented 2 years ago

I've just released Prog8 7.4.1, which results in quite different numbers on the benchmarks that make the graphs quite outdated:

p.s. does still require PR #9 to be applied first because of some syntax changes in the past.

@KarolS are you still maintaining these lists?