[Webkit-unassigned] [Bug 24986] ARM JIT port

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 7 04:20:28 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=24986





------- Comment #14 from barraclough at apple.com  2009-05-07 04:20 PDT -------
Since you have the MacroAssembler up and running, you may find it interesting
to give Yarr (our new regex engine) a try (this should largely just be a
question of porting the function entry/exit routines, which are fairly similar
to those in WREC).

Yarr is still work-in-progress, but last time I measured I believe it was
considerably more than 2x faster then WREC at running the larger v8 regular
expression benchmark.  We intend to expand the code generation to more
completely cover the full regex language, which we expect to further extend the
gain of using Yarr over WREC (which must fall back to PCRE for expresions that
are not supported).  For your information, WREC is currently unused in
tip-of-tree, and the code is likely to be removed fairly soon.  The advantage
using the MacroAssembler interface if that such developments in JSC should be
able to become available for ARM with a fairly low overhead to get them up and
running.  (Alternatively you are of course welcome to port Yarr's code
generation to hand generated assembler, though I shan't make any promises at
this point as to how long it'll be until it is ripped out and replaced by yet
another regular expression engine! ;-) ).

The interface to the MacroAssembler is certainly not set in stone, and where
there are limitations that degrade the ability to generate code we would be
happy to look at how we can better accommodate code generation on all
architectures.  Looking at the example you've given, I'd suggest that
considering the ranges of immediates supported on Arm, having the
MacroAssembler perform some examination of Imm32 values to attempt to generate
the optimal branch form (from the hand coded example) where it is possible to
do so could be hugely beneficial.  Though it is clearly more work to implement
such a mechanism than it is to simply code the assembler for the idiom in one
specific place, there is also a greater benefit to be reaped from the invested
effort.  For example, any time an integer or pointer in being embedded into the
JIT code, and its bit pattern happened to have the required property it would
also benefit from this optimization.

cheers,
G.


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list