Closed
Bug 799281
Opened 13 years ago
Closed 7 months ago
IonMonkey: OSR block ignored for range calculation
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 960145
People
(Reporter: sstangl, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [ion:p1])
In 3d-cube:108, we have the following code:
> [Block 0]
> Constant 0 [range 0,0]
>
> [Block 1]
> Unbox OsrValue [range -inf,inf]
>
> [Block 2]
> Phi(Constant, Unbox) [range 0,0]
which implies that the iteration variable is fixed at 0, when it varies. Range Analysis should give the Phi [-inf,inf], and we should look into asserting some subset of validity for ranges given to phis.
| Reporter | ||
Updated•13 years ago
|
Whiteboard: [ion:p1]
Comment 1•13 years ago
|
||
This is done on purpose! A phi that points to an OsrValue is ignored, as it will have the same range as the other operand of the phi. It is not possible for the OsrValue to have another range, because it is derived from the same (JS/bytecode), only it runs in the interpreter/jm.
Comment 2•13 years ago
|
||
That is nearly completely correct (unfortunately). What Sean was pointing out is that the phi where the OSR value gets merged into the code is not in the loop header, but in the loop pre-header, so you can get bounds information which is wrong for the lifetime of the variable defined in the pre-header.
| Assignee | ||
Updated•12 years ago
|
Assignee: general → nobody
Updated•3 years ago
|
Severity: normal → S3
Updated•1 year ago
|
Blocks: sm-opt-jits
Comment 3•7 months ago
|
||
Still relevant?
Comment 4•7 months ago
|
||
Looks like this was fixed in bug 960145.
You need to log in
before you can comment on or make changes to this bug.
Description
•