Summary: | PredictNone is incorrectly treated as isDoublePrediction | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Yuqiang Xian <yuqiang.xian> | ||||||
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | barraclough, fpizlo | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Yuqiang Xian
2012-03-05 19:21:46 PST
Created attachment 130269 [details]
the patch
Attention: One performance regression on SunSpider-bitops-nsieve-bits. The root cause is identified - In ToT, a dead/unused variable was marked as ForcedDouble simply because it has PredictNone (as we don't propagate the type information for the dead/unused variables), and is treated as a Double prediction - so OSR performed successfully (that unused variable actually happened to be an integer, see line 108 in DFGOSREntry.cpp). But with this bug fix, the OSR is failed because there's no type prediction for the unused variable. Separated bug will be filed against this.
(In reply to comment #1) > Attention: One performance regression on SunSpider-bitops-nsieve-bits. The root cause is identified - In ToT, a dead/unused variable was marked as ForcedDouble simply because it has PredictNone (as we don't propagate the type information for the dead/unused variables), and is treated as a Double prediction - so OSR performed successfully (that unused variable actually happened to be an integer, see line 108 in DFGOSREntry.cpp). But with this bug fix, the OSR is failed because there's no type prediction for the unused variable. Separated bug will be filed against this. bug 80371 is created for this specific issue. Does the performance regression go away now? Created attachment 130296 [details] Performance result Yes, there's no performance regression with this change after bug 80371 is fixed. Please see the attached result. Landed as http://trac.webkit.org/changeset/109865 |