-
Notifications
You must be signed in to change notification settings - Fork 163
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
Move MarkBag* funcs into GCs so they can inline MarkBag #3840
Conversation
I am aware this needs some cleaning up, but I'm interested on opinions on the general layout (in particular having the Inc file at all) |
Wow, that's massive. And my fault, I guess (never expect inlining to be so vital in this case, but I should have measured back then sigh). I am not "hot" for those |
I just checked, and luckily, this regression is not present in GAP 4.10, but of course it is present in the (as of yet unreleased) GAP 4.11. As such, I'd like to backport this to GAP 4.11, if possible (CC @alex-konovalov). |
aadaecd
to
34eedc4
Compare
Backported in 8b3ec23 |
While tracking down a slowness, I found that splitting functions involved in marking bags between different files created a significant slowdown in gasman. This patch pulls these functions into a header which should be included into each GC. I'm not totally happy with how this is done, but it feels like the best way to do things without duplicating code.
The ".inc" extension is something I've used in other systems for headers which must only be included in one file. I'm open to alternative suggestions. Another (horrible) option would be to put this stuff into gasman.h, guarded by a macro (IN_GC?), which would be #defined in each GC file...
On master:
With this patch: