Closed Bug 1375504 Opened 2 years ago Closed Last year

Add some asserts to CacheIR code

Categories

(Core :: JavaScript Engine: JIT, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: jandem, Assigned: jandem)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

There are some invariants we could easily assert.
Flags: needinfo?(jdemooij)
Priority: -- → P3
Attached patch PatchSplinter Review
Just to get this (finally) out of my needinfo queue, here's a patch that asserts:

* Instructions don't allocate registers after we call addFailurePath.
* Instructions don't call addFailurePath more than once.
* Different operands never have aliasing registers or stack slots.
Assignee: nobody → jdemooij
Status: NEW → ASSIGNED
Flags: needinfo?(jdemooij)
Attachment #8975409 - Flags: review?(tcampbell)
Comment on attachment 8975409 [details] [diff] [review]
Patch

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

Thanks.

::: js/src/jit/CacheIRCompiler.h
@@ +305,5 @@
>      // The number of bytes pushed on the native stack.
>      uint32_t stackPushed_;
>  
> +#ifdef DEBUG
> +    // Flag used to assert instructions don't allocate registers after calling

> .. assert individual CacheIR instructions ..

I was initially unclear on the scope of this check.
Attachment #8975409 - Flags: review?(tcampbell) → review+
Pushed by jandemooij@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b8a9fd5984cc
Add some asserts to the CacheIR code. r=tcampbell
https://hg.mozilla.org/mozilla-central/rev/b8a9fd5984cc
Status: ASSIGNED → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
You need to log in before you can comment on or make changes to this bug.