Open
Bug 799281
Opened 12 years ago
Updated 11 days ago
IonMonkey: OSR block ignored for range calculation
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
NEW
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•12 years ago
|
Whiteboard: [ion:p1]
Comment 1•12 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•12 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•11 years ago
|
Assignee: general → nobody
Updated•2 years ago
|
Severity: normal → S3
Updated•11 days ago
|
Blocks: sm-opt-jits
You need to log in
before you can comment on or make changes to this bug.
Description
•