Small IR docs, and then some learning about rustdoc.

This commit is contained in:
2023-04-23 21:02:15 -07:00
parent e79788bcd1
commit 7596472c65
6 changed files with 56 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
//! # The compiler backend!
//! # The compiler backend: generation of machine code, both static and JIT.
//!
//! This module is responsible for taking our intermediate representation from
//! [`crate::ir`] and turning it into Cranelift and then into object code that
@@ -15,19 +15,16 @@
//! they share a lot of behaviors. However, you'll want to use different variants
//! based on your goals:
//!
//! * Use `Backend<ObjectModule>`, constructed via
//! [`Backend::object_file`](self::backend::Backend::object_file), if you
//! want to compile to an object file on disk, which you're then going to
//! link to later.
//! * Use `Backend<JITModule>`, constructed via
//! [`Backend::jit`](self::backend::Backend::jit), if you want to do
//! just-in-time compilation and are just going to run things immediately.
//! * Use `Backend<ObjectModule>`, constructed via [`Backend::object_file`],
//! if you want to compile to an object file on disk, which you're then going
//! to link to later.
//! * Use `Backend<JITModule>`, constructed via [`Backend::jit`], if you want
//! to do just-in-time compilation and are just going to run things immediately.
//!
//! ## Working with Runtime Functions
//!
//! For now, runtime functions are pretty easy to describe, because there's
//! only one. In the future, though, the
//! [`RuntimeFunctions`](self::backend::RuntimeFunctions) object is there to
//! only one. In the future, though, the [`RuntimeFunctions`] object is there to
//! help provide a clean interface to them all.
mod error;
mod eval;