Open
Bug 771835
Opened 12 years ago
Updated 3 months ago
IonMonkey: handle x[v + i] during bounds check hoisting
Categories
(Core :: JavaScript Engine, defect, P5)
Tracking
()
NEW
People
(Reporter: bhackett1024, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [ion:t])
Attachments
(1 obsolete file)
Bounds check hoisting currently fails for accesses of the form x[v + i], when x and v are loop invariant. Array traversals in autoranslated code will look like this, rather than the usual x[i], as x is a big typed array and v is the base address of some allocated subarray of x.
Reporter | ||
Comment 1•12 years ago
|
||
Assignee: general → bhackett1024
Attachment #639994 -
Flags: review?(dvander)
Comment on attachment 639994 [details] [diff] [review]
patch
Review of attachment 639994 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/ion/LICM.cpp
@@ +465,5 @@
>
> + // Check if lhs in the conditional matches the bounds check index, in
> + // either the form (lhs + indexN) or (lhs + extra + indexN) for loop
> + // invariant extra. The latter pattern is important for JS translated from
> + // C/C++, where the accessed array is a giant typed array and y indicates
What does "y" refer to in this comment?
@@ +504,2 @@
> return;
> + } while (0);
Please separate out the above block into a separate function, since tryHoistBoundsCheck is getting pretty long.
Attachment #639994 -
Flags: review?(dvander) → review+
Reporter | ||
Updated•12 years ago
|
Attachment #639994 -
Attachment is obsolete: true
Attachment #639994 -
Flags: review+
Reporter | ||
Updated•12 years ago
|
Assignee: bhackett1024 → general
Updated•12 years ago
|
Whiteboard: [ion:t]
Assignee | ||
Updated•10 years ago
|
Assignee: general → nobody
Updated•2 years ago
|
Severity: normal → S3
Comment 3•3 months ago
|
||
This was motivated by asm.js and its predecessors, which have all been superseded by wasm. Unless we see other real-world examples of this pattern, it's not a high priority.
Priority: -- → P5
You need to log in
before you can comment on or make changes to this bug.
Description
•