Skip to content

Instantly share code, notes, and snippets.

@bjorn3
Last active March 12, 2020 19:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjorn3/d77f1b5b3cc69575295aa3f931cac053 to your computer and use it in GitHub Desktop.
Save bjorn3/d77f1b5b3cc69575295aa3f931cac053 to your computer and use it in GitHub Desktop.
Cranelift backend for rustc

Meeting proposal info

  • Title: Cranelift backend for rustc
  • Type: technical

Summary

The current LLVM backend for rustc is very good at optimizing functions. However it is not the fastest, even with optimizations disabled. When compiling in release mode this is not a big problem, but during development this can be annoying. Cranelift has the potential to improve compilation time, as it is optimized for compilation time as opposed to being optimized for good optimizations like LLVM. Over the course of the past ~1.5 year I have been working on a Cranelift based codegen backend for rustc (rustc_codegen_cranelift or cg_clif for short). It is currently complete enough to compile many programs. While there are cases where LLVM is faster, Cranelift is already faster than LLVM in many cases.

Rustc_codegen_cranelift is currently at a point where it may make sense to talk about bringing support in tree. This meeting proposal is about talking if we do want this and to talk about the future of rustc_codegen_cranelift in general.

About this issue

This issue corresponds to a meeting proposal for the compiler team steering meeting. It corresponds to a possible topic of discussion. You can read more about the steering meeting procedure here.

Comment policy

These issues are meant to be used as an "announcements channel" regarding the proposal, and not as a place to discuss the technical details. Feel free to subscribe to updates. We'll post comments when reviewing the proposal in meetings or making a scheduling decision. In the meantime, if you have questions or ideas, ping the proposers on Zulip (or elsewhere).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment