Bug 125811 - FTL should be able to do call ICs
Summary: FTL should be able to do call ICs
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
: 123233 (view as bug list)
Depends on:
Blocks: 113621
  Show dependency treegraph
 
Reported: 2013-12-16 15:51 PST by Filip Pizlo
Modified: 2014-01-30 13:22 PST (History)
8 users (show)

See Also:


Attachments
work in progress (23.06 KB, patch)
2013-12-16 15:54 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
mostly done (27.41 KB, patch)
2013-12-16 16:43 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more... (36.66 KB, patch)
2013-12-16 19:33 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
register preservation is written (51.70 KB, patch)
2013-12-16 21:45 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
mostly there (58.85 KB, patch)
2013-12-17 14:41 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (74.80 KB, patch)
2013-12-17 19:29 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
even more... (90.75 KB, patch)
2013-12-17 20:02 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
maybe it's done? (104.47 KB, patch)
2013-12-17 20:25 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
it compiles (112.28 KB, patch)
2013-12-17 20:50 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
it makes calls (113.15 KB, patch)
2013-12-18 16:59 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
the beginnings of preserved-registers-aware OSR exit (133.70 KB, patch)
2013-12-18 22:59 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
I might be done (147.36 KB, patch)
2013-12-18 23:52 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
ready for review (148.24 KB, patch)
2013-12-19 15:06 PST, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (147.62 KB, patch)
2013-12-19 15:07 PST, Filip Pizlo
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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. ***