Closed
Bug 412016
Opened 17 years ago
Closed 17 years ago
TT: remove redundant NaN checks
Categories
(Tamarin Graveyard :: Tracing Virtual Machine, defect, P2)
Tracking
(Not tracked)
VERIFIED
DUPLICATE
of bug 416398
People
(Reporter: edwsmith, Unassigned)
Details
say x = a+(b*c)+1
each operation that returns an intermediate double also contains a NaN check as part of the dbox operation used on the double. However those nan checks don't amount to anything if the value is immediately used as a double; even if the temp is a NaN, the code flow would not have changed.
here is a snip from math-spectral-norm:
247 fadd 106,111
250 eq 247,247 NaN check 1
254 xf 250
333 quad #3FF00000:0
334 fadd 247,333
337 eq 334,334 NaN check 2 (obsoletes check 1)
341 xf 337
402 fmul 75,334
405 eq 402,402 NaN check 3 (obsoletes check 2)
409 xf 405
476 quad #40000000:0
477 fdiv 402,476
480 eq 477,477 NaN check 4 (obsoletes check 3)
484 xf 480
535 xf 118
633 fadd 477,106
636 eq 633,633 NaN check 5 (see a pattern?)
640 xf 636
716 quad #3FF00000:0
717 fadd 633,716
720 eq 717,717 NaN check 6 (and so on)
724 xf 720
Reporter | ||
Comment 1•17 years ago
|
||
x (op) const is not nan when x is i2d() or u2d() and const is an integer valued double.
Reporter | ||
Updated•17 years ago
|
Component: Virtual Machine → Tracing Virtual Machine
QA Contact: vm → tracing-vm
Reporter | ||
Updated•17 years ago
|
Priority: -- → P2
Reporter | ||
Updated•17 years ago
|
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → DUPLICATE
Updated•15 years ago
|
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•