Closed Bug 688022 Opened 13 years ago Closed 12 years ago

IonMonkey: remove MIRGenerator

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: cdleary, Assigned: cdleary)

References

Details

The MIRGenerator reference in MBasicBlock makes inlining tough.

IonBuilder (subclass of MIRGenerator) wants to be used as an abstraction for "compile this script and give me a graph of basic blocks". However, MBasicBlock refers to a MIRGenerator, so you can't easily use a separate IonBuilder to compile an inline graph.

(If you do, you have to iterate over all the MBasicBlocks in that inline graph and switch them to use the outer IonBuilder as their MIRGenerator. In addition, you have to copy the "next id" numbers from the outer graph to the inner graph and back out again.)

MIRGenerator is a bit of a strange abstraction, so we'll rip it out and replace it with its constituent components: CompileInfo (with static information about the script being compiled) and MGraph (which will be referred to by the MBasicBlocks and absorb the list of MBasicBlocks). The allocator functionality is implicitly available via TLS.

While we're at it, it would be nice to rename MIRGraph to MGraph.
(In reply to Chris Leary [:cdleary] from comment #0)
> While we're at it, it would be nice to rename MIRGraph to MGraph.

Nix that (for symmetry with LIRGraph).
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.