Skip to content

Move assembler intrinsics / graph intrinsics / specialized inliner code to be normal recognized methods #43873

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

Open
mkustermann opened this issue Oct 21, 2020 · 0 comments
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-enhancement A request for a change that isn't a bug type-performance Issue relates to performance or code size

Comments

@mkustermann
Copy link
Member

After we've implemented 2 items (which are on our short term todo list already)

we should consider converting assembler intrinsics, graph intrinsics as well as specialized recognized methods in inliner to be normal recognized methods.

Those functions that need IL instructions which only work in optimized mode might need to be marked force-optimized.

This would allow us to:

  • reduce code duplication (e.g. typed data specialization in inliner as well as graph intrinsics)
  • simplify code (Fragment-based IL building is shorter, easier to read and maintain)
  • move towards a direction of having 1 mechanism to build special graph for recognized methods (instead of 4: asm intrinsics, graph intrinsics, specialized inliner code, normal recognized methods)
  • makes the system "just work" in more cases (e.g. we run SelectRepresentation on normal recognized methods, but not on graph intrinsics)

There is of course a possibility that some of the functions might get slower, in which case we should investigate if we can improve our normal optimizing compiler. If that is unsuccessful we could keep the old mechanism. Though I'm cautiously optimistic about it :)

/cc @mraleph @alexmarkov

@mkustermann mkustermann added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-performance Issue relates to performance or code size type-enhancement A request for a change that isn't a bug labels Oct 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. type-enhancement A request for a change that isn't a bug type-performance Issue relates to performance or code size
Projects
None yet
Development

No branches or pull requests

1 participant