Skip to content

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

Open
@mkustermann

Description

@mkustermann

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.type-enhancementA request for a change that isn't a bugtype-performanceIssue relates to performance or code size

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions