Bug 80055

Summary: JIT heuristics should be hyperbolic
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: dglazkov, paroga, rakuco, webkit.review.bot
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 79962    
Bug Blocks:    
Attachments:
Description Flags
work in progress
none
work in progress
none
the patch
webkit-ews: commit-queue-
the patch
webkit-ews: commit-queue-
the patch oliver: review+, webkit.review.bot: commit-queue-

Description Filip Pizlo 2012-03-01 15:15:04 PST
The less memory we have, the more we should wait to tier up.  This should further reduce the likelihood that we'll ever run out of executable memory, while also ensuring that when running an app that has a ton of code, we end up optimizing the things that are really the most important.

<rdar://problem/10922260>
Comment 1 Filip Pizlo 2012-03-01 15:22:40 PST
Created attachment 129756 [details]
work in progress
Comment 2 Filip Pizlo 2012-03-01 15:32:34 PST
Created attachment 129758 [details]
work in progress
Comment 3 Filip Pizlo 2012-03-04 01:37:02 PST
Created attachment 130019 [details]
the patch
Comment 4 Early Warning System Bot 2012-03-04 01:52:50 PST
Comment on attachment 130019 [details]
the patch

Attachment 130019 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11807369
Comment 5 Build Bot 2012-03-04 01:57:26 PST
Comment on attachment 130019 [details]
the patch

Attachment 130019 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/11803596
Comment 6 Filip Pizlo 2012-03-04 01:58:47 PST
Created attachment 130020 [details]
the patch

Ooops, forgot to fix up all of the build systems.
Comment 7 Early Warning System Bot 2012-03-04 02:12:18 PST
Comment on attachment 130020 [details]
the patch

Attachment 130020 [details] did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11801569
Comment 8 Filip Pizlo 2012-03-04 02:15:25 PST
Created attachment 130021 [details]
the patch

Trying again to fix Qt.
Comment 9 WebKit Review Bot 2012-03-04 03:47:13 PST
Comment on attachment 130021 [details]
the patch

Attachment 130021 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11802597

New failing tests:
editing/selection/select-line-break-with-opposite-directionality.html
Comment 10 Filip Pizlo 2012-03-04 22:53:26 PST
Landed in http://trac.webkit.org/changeset/109705
Comment 11 Patrick R. Gansterer 2012-03-05 11:56:39 PST
(In reply to comment #10)
> Landed in http://trac.webkit.org/changeset/109705

Patch broke WinCE bot, which is the only one with JIT turned off.

1>ExecutionCounter.cpp
1>..\..\..\..\Source\JavaScriptCore\bytecode\ExecutionCounter.cpp(68) : error C2653: 'ExecutableAllocator' : is not a class or namespace name
1>..\..\..\..\Source\JavaScriptCore\bytecode\ExecutionCounter.cpp(68) : error C3861: 'memoryPressureMultiplier': identifier not found

Can fix it, or at least tell me what's the correct way to fix it?


If there is any interrest in maintaing the !ENABLE(JIT) build, it would be nice to watch the WinCE bot too. :-)
Comment 12 Filip Pizlo 2012-03-05 12:08:02 PST
(In reply to comment #11)
> (In reply to comment #10)
> > Landed in http://trac.webkit.org/changeset/109705
> 
> Patch broke WinCE bot, which is the only one with JIT turned off.
> 
> 1>ExecutionCounter.cpp
> 1>..\..\..\..\Source\JavaScriptCore\bytecode\ExecutionCounter.cpp(68) : error C2653: 'ExecutableAllocator' : is not a class or namespace name
> 1>..\..\..\..\Source\JavaScriptCore\bytecode\ExecutionCounter.cpp(68) : error C3861: 'memoryPressureMultiplier': identifier not found
> 
> Can fix it, or at least tell me what's the correct way to fix it?
> 
> 
> If there is any interrest in maintaing the !ENABLE(JIT) build, it would be nice to watch the WinCE bot too. :-)

Oh noes!  Sorry about that!  The right fix is to place #if ENABLE(JIT) around ExecutionCounter.h and ExecutionCounter.cpp.  Hopefully that will be sufficient.

If you don't get around to it in the next half hour, I'll do it when I get to the office.
Comment 13 Patrick R. Gansterer 2012-03-05 12:40:46 PST
Landed fix for !ENABLE(JIT) in http://trac.webkit.org/changeset/109784
Comment 14 Patrick R. Gansterer 2012-03-05 12:52:05 PST
(In reply to comment #13)
> Landed fix for !ENABLE(JIT) in http://trac.webkit.org/changeset/109784

Simple adding #if ENABLE(JIT) isn't sufficent, since it's used in CodeBlock.h. IMHO there are some additional ifdefs required. Can you take care of this problem? Otherwise I need to digg deeper into the code, to place the ifdefs correctly.
Comment 15 Filip Pizlo 2012-03-05 13:07:38 PST
(In reply to comment #14)
> (In reply to comment #13)
> > Landed fix for !ENABLE(JIT) in http://trac.webkit.org/changeset/109784
> 
> Simple adding #if ENABLE(JIT) isn't sufficent, since it's used in CodeBlock.h. IMHO there are some additional ifdefs required. Can you take care of this problem? Otherwise I need to digg deeper into the code, to place the ifdefs correctly.

Yes, I'll take a look.
Comment 16 Filip Pizlo 2012-03-05 14:11:19 PST
Build fix landed in http://trac.webkit.org/changeset/109802