Friday, August 3, 2018

45 7 0 available also Talos fails

45 7 0 available also Talos fails


TenFourFox 45.7.0 is now available for testing. In addition to reducing the layout paint delay I also did some tweaks to garbage collection by removing some code that isnt relevant to us, including some profile accounting work we dont need to bother computing. If there is a request to reinstate this code in a non-debug build we can talk about a specific profiling build down the road, probably after exiting source parity. As usual the build finalizes Monday evening Pacific time. I didnt notice that the release had been pushed forward another week, to January 24. If additional security patches land, there will be a respin. There will be a respin this weekend. The download links have been invalidated and cancelled.

For 45.8 I plan to start work on the built-in user-agent switcher, and Im also looking into a new initiative Im calling "Operation Short Change" to wring even more performance out of IonPower. Currently, the JavaScript JITs platform-agnostic section generates simplistic unoptimized generic branches. Since these generic branches could call any code at any displacement and PowerPC conditional branch instructions have only a limited number of displacement bits, we pad the branches with nops (i.e., nop/nop/nop/bc) so they can be patched up later if necessary to a full-displacement branch (lis/ori/mtctr/bcctr) if the branch turns out to be far away. This technique of "branch stanzas" dates back all the way to the original nanojit we had in TenFourFox 4 and Ben Stuhl did a lot of optimization work on it for our JaegerMonkey implementation that survived nearly unchanged in PPCBC and in a somewhat modified form today in IonPower-NVLE.

However, in the case of many generic branches the Ion code generator creates, they jump to code that is always just a few instruction words away and the distance between them never moves. These locations are predictable and having a full branch stanza in those cases wastes memory and instruction cache space; fortunately we already have machinery to create these fixed "short branches" in our PPC-specific code generator and now its time to further modify Ion to generate these branches in the platform-agnostic segment as well. At the same time, since we dont generally use LR actually as a link register due to a side effect of how we branch, Im going to investigate whether using LR is faster for long branches than CTR (i.e., lis/ori/mtlr/b(c)lr instead of mtctr/b(c)ctr). Certainly on G5 I expect it probably will be because having mtlr and blr/bclr in the same dispatch group doesnt seem to incur the same penalty that mtctr and bctr/bcctr in the same dispatch group do. (Our bailouts do use LR, but in an indirect form that intentionally clobbers the register anyway, so saving it is unimportant.)

On top of all that there is also the remaining work on AltiVec VP9 and some other stuff, so its not like I wont have anything to do for the next few weeks.

On a more disappointing note, the Talos crowdfunding campaign for the most truly open, truly kick-*ss POWER8 workstation you can put on your desk has run aground, "only" raising $516,290 of the $3.7m goal. I guess it was just too expensive for enough people to take a chance on, and in fairness I really cant fault folks for having a bad case of sticker shock with a funding requirement as high as they were asking. But you get the computer youre willing to pay for. If you want a system made cheaper by economies of scale, then youre going to get a machine that doesnt really meet your specific needs because its too busy not meeting everybody elses. Ultimately its sad that no ones money was where their mouths were because for maybe double-ish the cost of the mythical updated Mac Pro Tim Cook doesnt see fit to make, you could have had a truly unencumbered machine that really could compete on performance with x86. But now we wont. And worst of all, I think this will scare off other companies from even trying.

visit link download

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.