Bug 125811

Summary: FTL should be able to do call ICs
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, ggaren, mark.lam, mhahnenberg, msaboff, nrotem, oliver, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 113621    
Attachments:
Description Flags
work in progress
none
mostly done
none
more...
none
register preservation is written
none
mostly there
none
more
none
even more...
none
maybe it's done?
none
it compiles
none
it makes calls
none
the beginnings of preserved-registers-aware OSR exit
none
I might be done
none
ready for review
none
the patch ggaren: review+

Description Filip Pizlo 2013-12-16 15:51:31 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2013-12-16 15:54:15 PST
Created attachment 219363 [details]
work in progress
Comment 2 Filip Pizlo 2013-12-16 16:43:24 PST
Created attachment 219369 [details]
mostly done

This works for FTL->FTL calls.

Now I need to put in the appropriate thunking for FTL->!FTL calls.
Comment 3 Filip Pizlo 2013-12-16 19:33:51 PST
Created attachment 219385 [details]
more...
Comment 4 Filip Pizlo 2013-12-16 21:45:06 PST
Created attachment 219395 [details]
register preservation is written

I still need to glue it together.
Comment 5 Filip Pizlo 2013-12-17 14:41:23 PST
Created attachment 219454 [details]
mostly there
Comment 6 Filip Pizlo 2013-12-17 19:29:43 PST
Created attachment 219494 [details]
more
Comment 7 Filip Pizlo 2013-12-17 20:02:00 PST
Created attachment 219497 [details]
even more...

Aiming for >100KB!  It's been too long since I've done one of those.
Comment 8 Filip Pizlo 2013-12-17 20:25:18 PST
Created attachment 219500 [details]
maybe it's done?
Comment 9 Filip Pizlo 2013-12-17 20:50:44 PST
Created attachment 219502 [details]
it compiles
Comment 10 Filip Pizlo 2013-12-18 16:59:17 PST
Created attachment 219590 [details]
it makes calls
Comment 11 Filip Pizlo 2013-12-18 22:59:23 PST
Created attachment 219620 [details]
the beginnings of preserved-registers-aware OSR exit

OMG this is going to be SO COOL
Comment 12 Filip Pizlo 2013-12-18 23:52:42 PST
Created attachment 219626 [details]
I might be done
Comment 13 Filip Pizlo 2013-12-19 15:06:29 PST
Created attachment 219688 [details]
ready for review
Comment 14 Filip Pizlo 2013-12-19 15:07:26 PST
Created attachment 219689 [details]
the patch
Comment 15 Geoffrey Garen 2013-12-19 15:40:02 PST
Comment on attachment 219689 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=219689&action=review

r=me

> Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:145
> +    // Henceforth we make it look like we had called through a register preservation wrapper.

I would say "the exiting function was called" instead of "we had called".

> Source/JavaScriptCore/ftl/FTLUnwindInfo.h:44
> +    unsigned indexOf(GPRReg gpr) const; // Return UINT_MAX if not found.

"Returns".
Comment 16 Filip Pizlo 2013-12-20 02:02:54 PST
Landed in http://trac.webkit.org/changeset/160893
Comment 17 Filip Pizlo 2014-01-30 13:22:42 PST
*** Bug 123233 has been marked as a duplicate of this bug. ***