-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Add option to disable vector pipeline #52544
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add argument jl_build_newpm_pipeline_impl
We should probably make |
@vchuravy fixed. I also added a flag for enabling/disabling the cleanup passes as well. @gbaraldi I'm not sure if I agree. As far as I can tell this function's arguments are exclusively these pipeline options, which means that passing them all in a struct is just as much work to set up (now with a struct) as calling them. |
On the Julia level the struct is easier since we can use keyword arguments to maintain API compatibility instead of each caller maintaining an Please do |
d3a2dde
to
cf4b729
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well apparently I had forgotten to hit submit on my review several days ago.
@@ -599,19 +613,35 @@ static void buildPipeline(ModulePassManager &MPM, PassBuilder *PB, OptimizationL | |||
MPM.addPass(AfterOptimizationMarkerPass()); | |||
} | |||
|
|||
extern "C" JL_DLLEXPORT_CODEGEN void jl_build_newpm_pipeline_impl(void *MPM, void *PB, int Speedup, int Size, | |||
int lower_intrinsics, int dump_native, int external_use, int llvm_only) JL_NOTSAFEPOINT | |||
struct PipelineConfig { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gbaraldi can I charge you with adding a Julia API for this that consumers can then use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In LLVM.jl?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made one in AllocCheck.jl that I have to upstream to LLVM.jl or GPUCompiler, not sure where is better
This will allow tools like Enzyme to use the internal julia pass pipeline, rather than having their own version.