[Webkit-unassigned] [Bug 171075] New: Air should support callsite-saves

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Apr 20 14:12:45 PDT 2017


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

            Bug ID: 171075
           Summary: Air should support callsite-saves
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: All
                OS: All
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: fpizlo at apple.com

Callsite-saves are an optimization that I found to be useful in a previous compiler project.  Basically, if you find that some register file needs callee-saves, but the ABI doesn't give them to you, you can fake it in the compiler: just designate some registers callsite-save and then do:

- Ignore those registers if they appear in the clobber set for any instruction during interference graph building.  Note that if an instruction defs a callsite-save, it still gets interference.

- After register allocation completes, emit save/restore code around any instruction that clobbers but does not def a callsite save.

I previously found this to be a >=30% speed-up on some floating-point code (some raytracer written in Java) on x86-32 when compiling to cdecl, which has no floating point callee-saves.  I used 3 callsite-saves in that project.

It's worth trying at B3 -O2.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20170420/60472ef1/attachment.html>


More information about the webkit-unassigned mailing list