Skip to content
This repository has been archived by the owner on Jun 26, 2020. It is now read-only.

Commit

Permalink
Tidy up one last mention of EntityMap.
Browse files Browse the repository at this point in the history
  • Loading branch information
sunfishcode committed Sep 27, 2018
1 parent a942c34 commit 68eb367
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions rustc.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,14 @@ such a thing might look like, including:
- Build an optimizer IR without the constraints of fast-debug-build
compilation. Cranelift's base IR is focused on Codegen, so a
full-strength optimizer would either use an IR layer on top of it
(possibly using Cranelift's flexible EntityMap system), or possibly
an independent IR that could be translated to/from the base IR.
Either way, this overall architecture would keep the optimizer out
of the way of the non-optimizing build path, which keeps that path
fast and simple, and gives the optimizer more flexibility. If we
then want to base the IR on a powerful data structure like the Value
State Dependence Graph (VSDG), we can do so with fewer compromises.
(possibly using cranelift-entity's flexible `SecondaryMap`s), or
possibly an independent IR that could be translated to/from the base
IR. Either way, this overall architecture would keep the optimizer
out of the way of the non-optimizing build path, which keeps that
path fast and simple, and gives the optimizer more flexibility. If we
then want to base the IR on a powerful data structure like the
Value State Dependence Graph (VSDG), we can do so with fewer
compromises.

And, these ideas build on each other. For example, one of the challenges
for dependence-graph-oriented IRs like the VSDG is getting good enough
Expand Down

0 comments on commit 68eb367

Please sign in to comment.