Closed Bug 840924 Opened 11 years ago Closed 11 years ago

BaselineCompiler: Fix earley-boyer failure

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

V8-earley currently fails:

$ ./js run-earley-boyer.js 
EarleyBoyer: TypeError: al is null

The copy in jit-tests passes and the test works with --no-ion, so it's probably related to bailouts from Ion.
Attached patch PatchSplinter Review
As discussed on IRC, we were calling AddTypePropertyId, but that did nothing because we were not tracking the property types.

This patch adds EnsureTrackPropertyTypes and calls it before calling AddTypePropertyId. I'm not very familiar with this code, but the patch passes jit-tests and fixes v8-earley.
Attachment #713932 - Flags: review?(bhackett1024)
Comment on attachment 713932 [details] [diff] [review]
Patch

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

::: js/src/jsinferinlines.h
@@ +617,5 @@
> +        AutoEnterAnalysis enter(cx);
> +
> +        TypeSet *types = obj->type()->getProperty(cx, id, true);
> +        if (!types)
> +            return false;

The boolean result here and failure checking is unnecessary and should be removed.  If getProperty() fails then TI will be disabled for the compartment,
Attachment #713932 - Flags: review?(bhackett1024) → review+
Pushed with comment addressed:

https://hg.mozilla.org/projects/ionmonkey/rev/be3a7071d301
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: