Summary: | DFG should be able to emit code on control flow edges | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | barraclough, ggaren | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | All | ||||||||
OS: | All | ||||||||
Attachments: |
|
Description
Filip Pizlo
2012-02-13 12:00:49 PST
Created attachment 126803 [details]
the patch
Note - because I was lazy this patch has verification enabled, since I'm still testing it. I will land with DFG_ENABLE_EDGE_CODE_VERIFICATION set to 0.
Created attachment 126816 [details]
the patch
Fixed Mac build, turned off landing pads.
Comment on attachment 126816 [details] the patch Attachment 126816 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/11511601 Comment on attachment 126816 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=126816&action=review > Source/JavaScriptCore/assembler/MacroAssembler.h:78 > + static DoubleCondition invert(DoubleCondition cond) At some point we should probably make double condition a common type for all assemblers (independent of machine implementation), with a guarantee that we can just invert by flipping a bit, and sue a table to map from the abstract type to a machine type. Ditto for the integer conditions. This looks fine for now though. > Source/JavaScriptCore/assembler/MacroAssembler.h:110 > + static bool isInvertible(ResultCondition cond) Presumably we could do away with this by introducing NoOverflow/NotSigned types? Probably worth doing at some point, though not urgent. Landed in: main patch: http://trac.webkit.org/changeset/107741 build fixes: http://trac.webkit.org/changeset/107742 http://trac.webkit.org/changeset/107744 |