Skip to content
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 julia pass pipeline to opt #46191

Merged
merged 4 commits into from
Sep 16, 2022
Merged

Add julia pass pipeline to opt #46191

merged 4 commits into from
Sep 16, 2022

Conversation

pchintalapudi
Copy link
Member

@pchintalapudi pchintalapudi commented Jul 27, 2022

We can now run the julia pipeline as a module pass in NewPM with this changeset. Useful commands are as follows:

usr/tools/opt --load-pass-plugin=libjulia-codegen.so --passes='julia<level=2;lower_intrinsics;no_dump_native;no_external_use;no_llvm_only>'

The options above are the defaults for the command, and may be optionally specified or specified with a no_ prefix to set them to false.

Depends on #46176

cc @Keno for #46181

@pchintalapudi pchintalapudi added the compiler:llvm For issues that relate to LLVM label Jul 27, 2022
@maleadt
Copy link
Member

maleadt commented Jul 27, 2022

Should probably update the devdocs: https://github.com/JuliaLang/julia/blob/master/doc/src/devdocs/llvm.md#debugging-llvm-transformations-in-isolation=

@Keno
Copy link
Member

Keno commented Jul 27, 2022

This seems great, thanks. Once this is all merged, I'll run it and send it over to the Alive2 folks.

@pchintalapudi
Copy link
Member Author

@maleadt while I'm handling the NewPM migration right now, what kind of C interface would GPUCompiler like for its own NewPM migration? I know there's still an issue with the PassBuilder's target-specific extension point passes, but ignoring that I can probably add in the relevant method calls.

@maleadt
Copy link
Member

maleadt commented Jul 28, 2022

what kind of C interface would GPUCompiler like for its own NewPM migration?

I haven't seriously looked at the NewPM yet, so wouldn't know. It looks like there's even no C API yet (Rust, e.g,. does all of the NewPM handling in C++)? Lacking that, I don't think we should already add any accessors here. I'll try to take a better look before 1.9 freezes.

@pchintalapudi pchintalapudi force-pushed the pc/newpm_pipeline2 branch 2 times, most recently from 283d735 to 78dabb2 Compare July 30, 2022 04:27
@pchintalapudi pchintalapudi force-pushed the pc/newpm_pipeline2 branch 2 times, most recently from a8c3db1 to 1e562cd Compare August 19, 2022 04:45
Base automatically changed from pc/newpm_pipeline2 to master September 7, 2022 07:43
@pchintalapudi pchintalapudi marked this pull request as ready for review September 7, 2022 07:44
@pchintalapudi pchintalapudi linked an issue Sep 8, 2022 that may be closed by this pull request
@pchintalapudi pchintalapudi merged commit 260e986 into master Sep 16, 2022
@pchintalapudi pchintalapudi deleted the pc/newpm_alive2 branch September 16, 2022 16:18
aviatesk pushed a commit that referenced this pull request Dec 9, 2022
* Use NewPM for optimization unless ASAN is in effect

* Disable NewPM by default

* Add julia pass pipeline to opt

* Update llvm devdocs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:llvm For issues that relate to LLVM
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add a pass pipeline that runs only non-semantic passes
4 participants