Closed Bug 866050 Opened 7 years ago Closed 7 years ago

IonMonkey: Fix UsesBeforeIonRecompile

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla23

People

(Reporter: jandem, Assigned: jandem)

Details

Attachments

(1 file)

Attached patch PatchSplinter Review
ion::UsesBeforeIonRecompile uses a slightly higher use count threshold for inner loops, so that we are more likely to enter outer loops via OSR. This check has been broken for a while though, with baseline we don't run the analysis step that calculates this loop depth.

This patch stores the depth as uint8 in the LOOPENTRY op (and also gets rid of a dependency of ScriptAnalysis).
Attachment #742298 - Flags: review?(bhackett1024)
Comment on attachment 742298 [details] [diff] [review]
Patch

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

::: js/src/frontend/BytecodeEmitter.cpp
@@ +433,5 @@
>              return false;
>      }
>  
> +    /*
> +     * Calculate loop depth. Note that this value is just an indication, so

I think 'hint' would read better than 'indication'

::: js/src/jsopcode.tbl
@@ +537,5 @@
>  OPDEF(JSOP_IMPLICITTHIS,  226, "implicitthis", "",    5,  0,  1,  0,  JOF_ATOM)
>  
> +/*
> + * This opcode is the target of the entry jump for some loop. The uint8 argument
> + * is the loop depth. This value starts at 1 and is just an indication: deeply

Ditto
Attachment #742298 - Flags: review?(bhackett1024) → review+
https://hg.mozilla.org/mozilla-central/rev/0f91553baf96
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in before you can comment on or make changes to this bug.