You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As per the title, I think it would be paramount to split the builtins support between the backend and the middleend, the reason that I propose this is fourfold:
By splitting the support to the middleend initially, we will be able to optimize the register usage for individual uses, preventing the expensive calling convention setups for fastcall.
Depending on the architecture, if there is no instruction-level support, we could theoretically insert an IR-level block for what we want to do and have the optimizer work with that.
Some builtins are platform specific, if we mark those builtins in the middle-end we can spit them out and say "Not supported for this platform" and error out because of it
Continuing with 4, when there IS a platform specific builtin, we can optimize how we get into a valid state for it and execute the individual instruction, allowing us to support sse intrinsics without having expensive move-arounds (related to Adding the new SSE instructions as intrinsics #304 in a way).
This is a rather hefty issue so I definitely think this belongs sometime after milestone 4, possibly after milestone 5.
As per the title, I think it would be paramount to split the builtins support between the backend and the middleend, the reason that I propose this is fourfold:
This is a rather hefty issue so I definitely think this belongs sometime after milestone 4, possibly after milestone 5.