WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WONTFIX
171075
Air should support callsite-saves
https://bugs.webkit.org/show_bug.cgi?id=171075
Summary
Air should support callsite-saves
Filip Pizlo
Reported
2017-04-20 14:12:45 PDT
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.
Attachments
it builds!
(31.51 KB, patch)
2017-04-20 14:16 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
full attempt
(45.86 KB, patch)
2017-04-21 11:51 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2017-04-20 14:16:06 PDT
Created
attachment 307636
[details]
it builds!
Filip Pizlo
Comment 2
2017-04-21 11:51:51 PDT
Created
attachment 307764
[details]
full attempt This is neutral on everything except Kraken, where it's a 1% regression. I guess we don't need it.
Filip Pizlo
Comment 3
2017-04-21 11:52:10 PDT
It's not a progression, so we shouldn't do it.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug