Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend GCM with an ability to split partially-dead nodes #80

Merged
merged 7 commits into from
Mar 26, 2024
Merged

Conversation

dstogov
Copy link
Owner

@dstogov dstogov commented Mar 22, 2024

The code is based on the Benedikt Meurer's idea first implemented in V8. See: https://codereview.chromium.org/899433005

@dstogov dstogov changed the title Extend GCM with an ability to split partyall-dead nodes Extend GCM with an ability to split partially-dead nodes Mar 22, 2024
@dstogov dstogov force-pushed the gcm_split branch 3 times, most recently from 254eb11 to 1565a86 Compare March 26, 2024 17:06
@dstogov dstogov marked this pull request as ready for review March 26, 2024 20:47
@dstogov
Copy link
Owner Author

dstogov commented Mar 26, 2024

This increases the speed of minilua compiled with IR almost twice. (0.091 sec instead of 0.180)

clang -Wno-everything -O -Xclang -disable-llvm-passes -w -c -emit-llvm -o tmp.bc dynasm/minilua.c
opt tmp.bc --passes='function(mem2reg)' -S -o minilua.ll
ir --llvm-asm minilua.ll --run ./bench/mandelbrot.lua

@dstogov dstogov merged commit 87cba9a into master Mar 26, 2024
7 checks passed
@dstogov
Copy link
Owner Author

dstogov commented Mar 27, 2024

hi @cliffclick

I'm very interested in getting your opinion about this GCM extension (and may be some related ideas).
I'm not the author of the algorithm, and it was never described in papers.

@cliffclick
Copy link

Sounds reasonable. I wrestled with the notion, but had too many other fish to fry at the time. Seemed low payoff, but more or less free. Also, the X86 machine ops would clone "simple" ops for free into the larger X86 addressing mode, so again some simple/cheap cases got handled already. Never did the general case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants