BaselineCompiler: Fix masking of ion compiler by baseline compiler.

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: djvj, Unassigned)

Tracking

17 Branch
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

6 years ago
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.
(Reporter)

Comment 1

6 years ago
Created attachment 688408 [details] [diff] [review]
Unmask ion compiler.

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+
(Reporter)

Updated

6 years ago
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.