Closed Bug 412016 Opened 17 years ago Closed 17 years ago

TT: remove redundant NaN checks

Categories

(Tamarin Graveyard :: Tracing Virtual Machine, defect, P2)

x86
Windows XP
defect

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
No longer depends on: 411170
x (op) const is not nan when x is i2d() or u2d() and const is an integer valued double.
Component: Virtual Machine → Tracing Virtual Machine
QA Contact: vm → tracing-vm
Priority: -- → P2
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.