Closed Bug 818231 Opened 10 years ago Closed 10 years ago

BaselineCompiler: Fix masking of ion compiler by baseline compiler.

Categories

(Core :: JavaScript Engine, defect)

17 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: djvj, Unassigned)

References

Details

Attachments

(1 file)

Currently the BaselineCompiler entrypoints are implemented by shortcutting ion::CanEnter and ion::Cannon with calls to ion::CanEnterBaselineJIT and ion::EnterBaselineMethod.

This prevents the ion compiler from executing, and should be fixed.
Segregates the check for baseline-compilation from the check for ion-compilation, and does the ion-compilation check first.

Baseline-compiled scripts won't yet recompile with Ion yet since we don't update script useCounts from inside baseline, and we don't check for ion compilation from the baseline jitcode, but this patch will allow for ion-compilation of functions called from the interpreter which the baseline compiler cannot compile.
Attachment #688408 - Flags: review?(jdemooij)
Comment on attachment 688408 [details] [diff] [review]
Unmask ion compiler.

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

::: js/src/jsinterp.cpp
@@ +1518,5 @@
>          else
>              Probes::exitScript(cx, script, script->function(), regs.fp());
>  
>          /* The JIT inlines the epilogue. */
> +#ifdef JS_METHODJIT || JS_ION

#if defined(JS_METHODJIT) || defined(JS_ION)

@@ +2392,5 @@
> +            // TODO: This may need to be removed when we want to add support for
> +            // OSR into Ion, which will be implemented by bailing out to the interpreter
> +            // from baseline.
> +            JS_ASSERT(exec != ion::IonExec_Bailout);
> +        

Nit: trailing whitespace
Attachment #688408 - Flags: review?(jdemooij) → review+
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.