Closed Bug 668940 Opened 13 years ago Closed 13 years ago

IonMonkey: Split critical edges

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dvander, Assigned: dvander)

References

Details

Attachments

(1 file)

This is needed for greedy regalloc and LSRA, so we might as well hoist it out into a very early MIR pass.
Attached patch patchSplinter Review
I took this opportunity to get rid of loopSuccessor_ per bug 667132 because keeping explicit edge information around makes mutating it harder.
Attachment #543560 - Flags: review?(adrake)
Comment on attachment 543560 [details] [diff] [review]
patch

Review of attachment 543560 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good otherwise!

::: js/src/ion/MIR.h
@@ +516,5 @@
>          JS_ASSERT(i < numSuccessors());
>          return successors[i];
>      }
> +
> +    void replaceEdge(size_t i, MBasicBlock *split) {

Nit: replaceSuccessor would probably be more accurate.
Attachment #543560 - Flags: review?(adrake) → review+
Blocks: 657816
http://hg.mozilla.org/users/danderson_mozilla.com/ionmonkey/rev/c6bcb9608c96 and a follow-up for nits
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.