-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a new crate for the FLIR data structures
- Loading branch information
1 parent
6571743
commit 0f181c1
Showing
5 changed files
with
47 additions
and
5 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
[package] | ||
name = "ltc-flir" | ||
version.workspace = true | ||
homepage.workspace = true | ||
repository.workspace = true | ||
license-file.workspace = true | ||
|
||
authors.workspace = true | ||
description = "The FlatLowered Intermediate Representation, or FLIR, is a FlatLowered-based IR customized to the needs of the LTC project." | ||
keywords.workspace = true | ||
categories.workspace = true | ||
|
||
edition.workspace = true | ||
rust-version.workspace = true | ||
|
||
[dependencies] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# `FlatLowered` Intermediate Representation | ||
|
||
The `FlatLowered` Intermediate Representation (`FLIR`) is an intermediate representation for the | ||
LLVM to Cairo project that is based on Cairo's `FlatLowered` but tailored for our use-case. | ||
|
||
In particular, it removes any dependency on the [Salsa](https://github.com/salsa-rs/salsa) database | ||
structures, as well as: | ||
|
||
- Allowing round-tripping to and from `FlatLowered`. | ||
- Forming the basis of the `.flo` (FlatLowered Object) object format for exchange between tools in | ||
the LTC pipeline. | ||
- Adding support for features (such as linkage and relocations) that are not supported by the | ||
`FlatLowered`. | ||
|
||
While we could spend the time to add these features to upstream `FlatLowered`, having our own IR | ||
means that we can iterate and experiment far more rapidly as needed. Some portions of this work | ||
_may_ be upstreamed in the future, but we make no guarantees. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
//! The `FlatLowered` Intermediate Representation (`FLIR`) is the IR designed | ||
//! for use as an interchange format between tools in the LLVM to Cairo project, | ||
//! and the basis for the `.flo` object format. |