machenbach
91f38435ea
Revert of [V8] Added Script::is_opaque flag for embedders (patchset #5 id:80001 of https://codereview.chromium.org/1140673002/ )
...
Reason for revert:
[Sheriff] Breaks chromium win compilation:
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/96
Original issue's description:
> [V8] Added Script::is_opaque flag for embedders
>
> When the page is controlled by a ServiceWorker, the ServiceWorker can return an opaque (non-CORS cross origin) resource response.
> We need to treat the messages from such script resource as opaque.
>
> Committed: https://crrev.com/7a599c5e1242d3c5ab7515ee149623da90ae69ec
> Cr-Commit-Position: refs/heads/master@{#28445}
TBR=mkwst@chromium.org ,jochen@chromium.org,yangguo@chromium.org,horo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1135343005
Cr-Commit-Position: refs/heads/master@{#28449}
2015-05-18 14:54:42 +00:00
horo
7a599c5e12
[V8] Added Script::is_opaque flag for embedders
...
When the page is controlled by a ServiceWorker, the ServiceWorker can return an opaque (non-CORS cross origin) resource response.
We need to treat the messages from such script resource as opaque.
Review URL: https://codereview.chromium.org/1140673002
Cr-Commit-Position: refs/heads/master@{#28445}
2015-05-18 13:54:24 +00:00
yangguo
e24b31f003
Revert "Resolve references to "this" the same way as normal variables"
...
... and the following two
"PPC: Resolve references to "this" the same way as normal variables"
"Remove Scope::scope_uses_this_ flag"
R=hablich@chromium.org
BUG=chromium:487289
LOG=N
Review URL: https://codereview.chromium.org/1134003003
Cr-Commit-Position: refs/heads/master@{#28395}
2015-05-13 13:30:01 +00:00
wingo
aefba70586
Remove Scope::scope_uses_this_ flag
...
R=rossberg@chromium.org
LOG=N
BUG=
Review URL: https://codereview.chromium.org/1128963005
Cr-Commit-Position: refs/heads/master@{#28343}
2015-05-11 15:42:13 +00:00
danno
abc35080b3
Add a MathFloor stub generated with TurboFan
...
This stub will be used as the basis of a Math.floor-specific CallIC to
detect and track calls to floor that return -0.
Along the way:
- Create a TurboFanCodeStub super class from which the StringLength and
MathRound TF stubs derive.
- Fix the ugly hack that passes the first stub parameter as the "this"
pointer in the the TF-compiled JS function.
- Fix bugs in the ia32/x64 disassembler.
Review URL: https://codereview.chromium.org/1137703002
Cr-Commit-Position: refs/heads/master@{#28339}
2015-05-11 11:45:02 +00:00
mvstanton
f9c46ed1bb
TurboFan: commit dependencies only on update of the opt. code list.
...
TurboFan compilation was committing dependencies long before the
optimized function made it's way into the optimized code list for
the native context. The problem is that once the code pointer is out
there in dependency arrays, it is eligible for deopt. But the deopt
logic needs the code to be in the optimized code list to fully do it's
job.
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1136693003
Cr-Commit-Position: refs/heads/master@{#28312}
2015-05-08 09:13:12 +00:00
machenbach
36f5f40074
Revert of Remove Scope::scope_uses_this_ flag (patchset #1 id:1 of https://codereview.chromium.org/1129823002/ )
...
Reason for revert:
The reason for reverting is: [Sheriff] Need to fix compilation after this revert:
5cab6be83a
Original issue's description:
> Remove Scope::scope_uses_this_ flag
>
> Use of the "this" variable is now tracked using scopes, like any other variable.
>
> R=arv@chromium.org
> LOG=N
> BUG=
>
> Committed: https://crrev.com/afba55965118d9ba57e53c729f52be2340e626e0
> Cr-Commit-Position: refs/heads/master@{#28268}
TBR=arv@chromium.org ,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1131713004
Cr-Commit-Position: refs/heads/master@{#28285}
2015-05-07 07:47:11 +00:00
wingo
afba559651
Remove Scope::scope_uses_this_ flag
...
Use of the "this" variable is now tracked using scopes, like any other variable.
R=arv@chromium.org
LOG=N
BUG=
Review URL: https://codereview.chromium.org/1129823002
Cr-Commit-Position: refs/heads/master@{#28268}
2015-05-06 15:50:06 +00:00
vogelheim
be9570027f
Implement a 'trial parse' step, that will abort pre-parsing excessively
...
long and trivial functions, so that they can be eagerly compiled after all.
This essentially allows the parser to renege on its earlier decision to
lazy-parse, if additional information suggests it was a bad decision.
BUG=chromium:470930
LOG=Y
Review URL: https://codereview.chromium.org/1102523003
Cr-Commit-Position: refs/heads/master@{#28252}
2015-05-06 10:21:27 +00:00
verwaest
fab3508062
Only swap undefined for the global object if necessary in the prologue
...
BUG=
Review URL: https://codereview.chromium.org/1120093002
Cr-Commit-Position: refs/heads/master@{#28200}
2015-05-04 13:39:00 +00:00
adamk
d18dd375ac
Remove unused Module-related AST nodes and associated codegen
...
BUG=v8:1569
LOG=n
Review URL: https://codereview.chromium.org/1106383008
Cr-Commit-Position: refs/heads/master@{#28179}
2015-04-30 16:20:56 +00:00
titzer
b0dcf6abf2
Allow TurboFan to compile more methods.
...
Reorganize some bailout conditions to be after the decision to use TurboFan.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1110573002
Cr-Commit-Position: refs/heads/master@{#28172}
2015-04-30 14:50:45 +00:00
bmeurer
b9d583d581
[turbofan] Don't spread global flag checks all over the compiler code.
...
Better encapsulate the source position handling in TurboFan.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/1105363003
Cr-Commit-Position: refs/heads/master@{#28153}
2015-04-30 09:56:31 +00:00
svenpanne
4b122b7504
Detect simple tail calls
...
This CL contains the first steps towards tail call optimization:
* Structurally detect tail calls during instruction selection,
looking for special return/call combinations.
* Added new architecture-specific instructions for tail calls which
jump instead of call and take care of frame adjustment.
* Moved some code around.
Currently we restrict tail calls to callees which only use registers
for arguments/return value and to call sites which are explicitly
marked as being OK for tail calls. This excludes, among other things,
call sites in sloppy JS functions and our IC machinery (both need in
general to be able to access the caller's frame).
All this is behind a flag --turbo-tail-calls, which is currently off
by default, so it can easily be toggled.
Review URL: https://codereview.chromium.org/1108563002
Cr-Commit-Position: refs/heads/master@{#28150}
2015-04-30 09:10:28 +00:00
mstarzinger
e7292b3c1a
[turbofan] Correctly handle illegal redeclarations.
...
R=titzer@chromium.org
TEST=mjsunit/const-redecl
Review URL: https://codereview.chromium.org/1115613002
Cr-Commit-Position: refs/heads/master@{#28125}
2015-04-29 09:22:45 +00:00
titzer
44350b3d49
Remove kOsrCompileFailed bailout.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1105133002
Cr-Commit-Position: refs/heads/master@{#28083}
2015-04-27 14:24:28 +00:00
titzer
6e82fbfbaf
[turbofan] Reland: Optimize loads from the global object in JSTypeFeedbackSpecializer.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1110503002
Cr-Commit-Position: refs/heads/master@{#28073}
2015-04-27 12:15:06 +00:00
machenbach
fbf300802f
Revert of [turbofan] Optimize loads from the global object in JSTypeFeedbackSpecializer. (patchset #10 id:180001 of https://codereview.chromium.org/1063513003/ )
...
Reason for revert:
[sheriff] Breaks nosnap debug:
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%201/builds/156
Original issue's description:
> [turbofan] Optimize loads from the global object in JSTypeFeedbackSpecializer.
>
> Uses lazy deoptimization and code dependencies to introduce loads
> from property cells and also to promote globals to constants.
>
> R=mstarzinger@chromium.org
> BUG=
>
> Committed: https://crrev.com/aae4a62d07e839455b1d0ad4fa512cc5d48a1a68
> Cr-Commit-Position: refs/heads/master@{#28057}
TBR=mstarzinger@chromium.org ,titzer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1084533003
Cr-Commit-Position: refs/heads/master@{#28063}
2015-04-27 10:07:08 +00:00
titzer
aae4a62d07
[turbofan] Optimize loads from the global object in JSTypeFeedbackSpecializer.
...
Uses lazy deoptimization and code dependencies to introduce loads
from property cells and also to promote globals to constants.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1063513003
Cr-Commit-Position: refs/heads/master@{#28057}
2015-04-27 09:06:41 +00:00
vogelheim
63f7fbfea6
Lolcode candidate: Both Expression and FunctionLiteral define an accessor is_parenthesized(), which access different flags. FunctionLiteral derives from Expression.
...
Given
FunctionLiteral* a; a->is_parenthesized()
const FunctionLiteral* b; b->is_parenthesized()
the first accesses FunctionLiteral::IsParenthesized, the second accesses Expression::IsParenthesizedField.
Since these are distinct uses, we could rename them based on their use:
- Expression::is_parenthesized -> is_single_parenthesized
Count # of parenthesis, for parsing & error handling:
no parenthesis -> single parenthesis -> multi parenthesis
- FunctionLiteral::eager_compile_hint()
Hint from parser to compiler about whether the parser suggests this function for eager compilation.
BUG=
Review URL: https://codereview.chromium.org/1097723005
Cr-Commit-Position: refs/heads/master@{#28042}
2015-04-24 11:07:31 +00:00
bmeurer
4940c0bd42
[turbofan] Unify frame state inputs.
...
Now all nodes that care about deoptimization always take frame state
inputs no matter whether deoptimization is enabled for a particular
function. In case that deoptimization is off, the AstGraphBuilder just
inserts the empty frame state. This greatly simplifies the logic in
various places and makes testing easier as well, and is probably the
first step towards enabling --turbo-deoptimization by default.
There seems to be no noticable performance impact on asm.js programs.
Also fix the graph replay in order to regenerate the scheduler unittests.
Review URL: https://codereview.chromium.org/1106613003
Cr-Commit-Position: refs/heads/master@{#28026}
2015-04-23 09:04:19 +00:00
titzer
1850803d56
[turbofan] Fix reduction of LoadProperty/StoreProperty to LoadNamed/StoreNamed.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1095313002
Cr-Commit-Position: refs/heads/master@{#27972}
2015-04-21 15:12:58 +00:00
svenpanne
4d3044e161
Removed src/{isolate,property-details,utils}-inl.h
...
Baby steps towards saner #includes...
Review URL: https://codereview.chromium.org/1051393003
Cr-Commit-Position: refs/heads/master@{#27958}
2015-04-21 10:21:37 +00:00
titzer
f557d75360
Reland "Refactor compilation dependency handling."
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1099473004
Cr-Commit-Position: refs/heads/master@{#27945}
2015-04-20 15:21:44 +00:00
Ross McIlroy
063fc25122
Replace OVERRIDE->override and FINAL->final since we now require C++11.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/1088993003
Cr-Commit-Position: refs/heads/master@{#27937}
2015-04-20 13:08:14 +00:00
machenbach
e3c2ba776a
Revert of Refactor compilation dependency handling. (patchset #4 id:60001 of https://codereview.chromium.org/1095433002/ )
...
Reason for revert:
[Sheriff] Causes crashes in laout tests:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2543
Extra bisect run:
http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2548
Original issue's description:
> Refactor compilation dependency handling.
>
> Extract a new data structure CompilationDependencies and move (most) logic there.
>
> R=mstarzinger@chromium.org ,verwaest@chromium.org
> BUG=
>
> Committed: https://crrev.com/b882479f1c84a48961b8aec81fa1bb1225034784
> Cr-Commit-Position: refs/heads/master@{#27892}
TBR=mstarzinger@chromium.org ,verwaest@chromium.org,titzer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1093783002
Cr-Commit-Position: refs/heads/master@{#27904}
2015-04-17 07:47:09 +00:00
titzer
b882479f1c
Refactor compilation dependency handling.
...
Extract a new data structure CompilationDependencies and move (most) logic there.
R=mstarzinger@chromium.org ,verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1095433002
Cr-Commit-Position: refs/heads/master@{#27892}
2015-04-16 16:04:34 +00:00
jochen
e683048416
Reland "Remove support for thread-based recompilation"
...
Original issue's description:
> Remove support for thread-based recompilation
>
> BUG=v8:3608
> R=yangguo@chromium.org
> LOG=y
>
> Committed: https://crrev.com/ed5db223a19dfe126af01
> Cr-Commit-Position: refs/heads/master@{#27619}
BUG=v8:3608
R=yangguo@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/1087763003
Cr-Commit-Position: refs/heads/master@{#27821}
2015-04-14 13:57:29 +00:00
mvstanton
2ebb794b4f
VectorICs: recreate feedback vector if scoping changes on recompile.
...
BUG=476488
LOG=N
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1080253003
Cr-Commit-Position: refs/heads/master@{#27817}
2015-04-14 12:31:31 +00:00
jochen
cf663c487f
Revert of Reland "Remove support for thread-based recompilation" (patchset #1 id:1 of https://codereview.chromium.org/1059853004/ )
...
Reason for revert:
still times out
Original issue's description:
> Reland "Remove support for thread-based recompilation"
>
> Original issue's description:
> > Remove support for thread-based recompilation
> >
> > BUG=v8:3608
> > R=yangguo@chromium.org
> > LOG=y
> >
> > Committed: https://crrev.com/ed5db223a19dfe126af012e894582251aa3635d7
> > Cr-Commit-Position: refs/heads/master@{#27619}
>
> BUG=v8:3608
> R=yangguo@chromium.org
> LOG=y
>
> Committed: https://crrev.com/f1ceccb8b8b352a91e6366e3e3103f1db0df6afb
> Cr-Commit-Position: refs/heads/master@{#27813}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3608
Review URL: https://codereview.chromium.org/1082183003
Cr-Commit-Position: refs/heads/master@{#27816}
2015-04-14 12:29:26 +00:00
jochen
f1ceccb8b8
Reland "Remove support for thread-based recompilation"
...
Original issue's description:
> Remove support for thread-based recompilation
>
> BUG=v8:3608
> R=yangguo@chromium.org
> LOG=y
>
> Committed: https://crrev.com/ed5db223a19dfe126af012e894582251aa3635d7
> Cr-Commit-Position: refs/heads/master@{#27619}
BUG=v8:3608
R=yangguo@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/1059853004
Cr-Commit-Position: refs/heads/master@{#27813}
2015-04-14 10:26:41 +00:00
mstarzinger
322cfb3589
[turbofan] Add JSStackCheck into loop bodies.
...
This allows loopy TurboFan code to be interrupted by placing a stack
check (i.e. JSStackCheck node) into each loop. Note that we currently
limit this to non-asm.js code. Also note that stack checks are actually
placed after loop headers and not at back-branches, which allows us to
reuse existing BailoutIds from Crankshaft.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1065923002
Cr-Commit-Position: refs/heads/master@{#27666}
2015-04-08 12:55:02 +00:00
yangguo
c4081d2503
Revert of Remove support for thread-based recompilation (patchset #1 id:1 of https://codereview.chromium.org/966653002/ )
...
Reason for revert:
speculative revert due to gc-stress timeouts.
Original issue's description:
> Remove support for thread-based recompilation
>
> BUG=v8:3608
> R=yangguo@chromium.org
> LOG=y
>
> Committed: https://crrev.com/ed5db223a19dfe126af012e894582251aa3635d7
> Cr-Commit-Position: refs/heads/master@{#27619}
TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
BUG=v8:3608
LOG=N
Review URL: https://codereview.chromium.org/1063383004
Cr-Commit-Position: refs/heads/master@{#27654}
2015-04-08 10:29:33 +00:00
mstarzinger
2d281e71ac
Make --always-opt also optimize top-level code.
...
This enables eager optimization of top-level code with TurboFan and
extends test coverage by triggering it with the --always-opt flag.
Script contexts are now also properly allocated in TurboFan.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1053063003
Cr-Commit-Position: refs/heads/master@{#27633}
2015-04-07 15:44:23 +00:00
Jochen Eisinger
ed5db223a1
Remove support for thread-based recompilation
...
BUG=v8:3608
R=yangguo@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/966653002
Cr-Commit-Position: refs/heads/master@{#27619}
2015-04-07 10:59:57 +00:00
yangguo
019096f829
Serializer: move to a subfolder and clean up includes.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/1041743002
Cr-Commit-Position: refs/heads/master@{#27501}
2015-03-27 15:29:07 +00:00
yangguo
69383d6366
Revert of Revert of Debugger: deduplicate shared function info when setting script break points. (patchset #1 id:1 of https://codereview.chromium.org/999273003/ )
...
Reason for revert:
Reland since the failure has been fixed in https://codereview.chromium.org/1035523005/
Original issue's description:
> Revert of Debugger: deduplicate shared function info when setting script break points. (patchset #4 id:60001 of https://codereview.chromium.org/998253005/ )
>
> Reason for revert:
> Code caching failures.
>
> Original issue's description:
> > Debugger: deduplicate shared function info when setting script break points.
> >
> > Also fix Debug.showBreakPoints for multiple break points at the same location.
> >
> > BUG=v8:3960
> > LOG=N
> >
> > Committed: https://crrev.com/73b17a71a22564c0b66d9aa7c00948c748f5b290
> > Cr-Commit-Position: refs/heads/master@{#27444}
>
> TBR=mstarzinger@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=v8:3960
>
> Committed: https://crrev.com/9b29d008dfcc00bf56be8040add1d2c5e404673b
> Cr-Commit-Position: refs/heads/master@{#27448}
TBR=mstarzinger@chromium.org
BUG=v8:3960
LOG=N
Review URL: https://codereview.chromium.org/1037013002
Cr-Commit-Position: refs/heads/master@{#27472}
2015-03-26 10:43:51 +00:00
titzer
78abf9d9d9
[turbofan]: Integrate basic type feedback for property accesses.
...
BUG=
Review URL: https://codereview.chromium.org/1021713005
Cr-Commit-Position: refs/heads/master@{#27470}
2015-03-26 09:38:25 +00:00
yangguo
9b29d008df
Revert of Debugger: deduplicate shared function info when setting script break points. (patchset #4 id:60001 of https://codereview.chromium.org/998253005/ )
...
Reason for revert:
Code caching failures.
Original issue's description:
> Debugger: deduplicate shared function info when setting script break points.
>
> Also fix Debug.showBreakPoints for multiple break points at the same location.
>
> BUG=v8:3960
> LOG=N
>
> Committed: https://crrev.com/73b17a71a22564c0b66d9aa7c00948c748f5b290
> Cr-Commit-Position: refs/heads/master@{#27444}
TBR=mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3960
Review URL: https://codereview.chromium.org/999273003
Cr-Commit-Position: refs/heads/master@{#27448}
2015-03-25 15:19:20 +00:00
yangguo
73b17a71a2
Debugger: deduplicate shared function info when setting script break points.
...
Also fix Debug.showBreakPoints for multiple break points at the same location.
BUG=v8:3960
LOG=N
Review URL: https://codereview.chromium.org/998253005
Cr-Commit-Position: refs/heads/master@{#27444}
2015-03-25 14:53:49 +00:00
mstarzinger
1fefa31df6
Remove CompilationInfoWithZone from public API.
...
This removes the CompilationInfoWithZone class from the header file
because it is more than a pure convenience class and shouldn't be used
outside of the compiler at all.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1000353004
Cr-Commit-Position: refs/heads/master@{#27411}
2015-03-24 14:17:17 +00:00
loislo
ae461b9ed0
CpuProfiler: push the collected information about deopts to cpu profiler
...
it is the last patch of https://codereview.chromium.org/1012633002
All that we need here is to push the collected info to the profiler
and convert it into actionable information about deopt.
On the Next: get the info accessible by embedder.
BUG=chromium:452067
LOG=n
TEST=DeoptAtFirstLevelInlinedSource, DeoptAtSecondLevelInlinedSource, DeoptUntrackedFunction
Review URL: https://codereview.chromium.org/1013143003
Cr-Commit-Position: refs/heads/master@{#27403}
2015-03-24 12:46:26 +00:00
mstarzinger
11fb202f96
Move CompilationInfo::this_has_uses to HGraph::this_has_uses.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1029643002
Cr-Commit-Position: refs/heads/master@{#27378}
2015-03-23 19:11:29 +00:00
titzer
0389c28ddf
Move this_has_uses from ParseInfo back into CompilationInfo and renumber CompilationInfo flags.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1028973002
Cr-Commit-Position: refs/heads/master@{#27369}
2015-03-23 14:48:23 +00:00
svenpanne
e396f538d0
Some CompilationInfo-related cleanup.
...
Use a delegating constructor for CompilationInfo, reducing duplicated
code. Simplified handling of InlinedFunctionInfos on the way: When we
start compiling, we have bigger things to worry about than a default
vector.
Reduced the usage of a SharedFunctionInfo for compiling, this is a
slighty strange concept.
Review URL: https://codereview.chromium.org/1018853004
Cr-Commit-Position: refs/heads/master@{#27299}
2015-03-19 12:40:00 +00:00
yurys
c622cb637a
Introduce explicit constant for per Context debug data set by embedder
...
It's value is hardwired in gin[1] and is referenced in Blink[2]. Since it is treated specially by v8 debugger it should be defined in v8 API and referenced in gin and blink..
[1] https://src.chromium.org/viewvc/chrome/trunk/src/gin/public/context_holder.h?r1=239099&r2=239098&pathrev=239099
[2] https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/bindings/core/v8/V8PerContextData.cpp&q=kDebugIdIndex%20f:V8PerContextData&sq=package:chromium&type=cs
BUG=chromium:466631
LOG=Y
Review URL: https://codereview.chromium.org/1020453002
Cr-Commit-Position: refs/heads/master@{#27290}
2015-03-19 08:18:44 +00:00
svenpanne
9118b2fa87
Tweak the TurboFan pipeline for stub compilation.
...
Review URL: https://codereview.chromium.org/1010673004
Cr-Commit-Position: refs/heads/master@{#27268}
2015-03-18 11:42:44 +00:00
loislo
7fef610d72
CpuProfiler: log pc offset for deopts.
...
This is the fifth part of https://codereview.chromium.org/1012633002
In this part we collect the offsets of deopt calls and save it into
an inlined function info.
On the Next:
Later when deopt happens we will get the offset of deopt call and
search it among inlined infos.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/1011113004
Cr-Commit-Position: refs/heads/master@{#27258}
2015-03-18 09:30:36 +00:00
loislo
dc3f240e53
CpuProfiler: replace FLAG_hydrogen_track_positions with is_tracking_positions method on CompilationInfo
...
this is the second part of https://codereview.chromium.org/1012633002 .
almost mechanical change.
I'd like to enable positions tracking when cpu profiler is working.
But I'll switch it on for cpu-profiler in another patch.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/995183005
Cr-Commit-Position: refs/heads/master@{#27224}
2015-03-16 14:17:17 +00:00
loislo
3e29f36ba4
CpuProfiler: convert List<InlinedFunctionInfo> into std::vector<InlinedFunctionInfo>
...
this is the first part of https://codereview.chromium.org/1012633002 .
mechanical change.
The motivation: the original patch needs to use List of List but list is not copiable.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/1011733002
Cr-Commit-Position: refs/heads/master@{#27221}
2015-03-16 13:41:56 +00:00
yangguo
567e45a192
Promote code from code cache to compilation cache.
...
The per-isolate compilation cache is a lot faster still than
the serialized code cache. Promote code to compilation cache
after deserialization.
R=vogelheim@chromium.org
BUG=chromium:399580
LOG=N
Review URL: https://codereview.chromium.org/1008363002
Cr-Commit-Position: refs/heads/master@{#27220}
2015-03-16 13:19:20 +00:00
Sven Panne
40567349df
Remove funky 2-stage initialization of ParserInfo and an adventurous memset.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1002673002
Cr-Commit-Position: refs/heads/master@{#27155}
2015-03-12 11:46:32 +00:00
loislo
df9e6fe329
CpuProfiler: simplify inlined function info magic.
...
I did some investigation and found that in the most cases
the old schema with the separate List for functions and inlines
gives us no memory benefits because more frequently we inlines
different functions into parent function. So the plain schema
wins a tens or even hundreds bytes a few thousand times.
The only drawback is that we will print the inlined body
the each time when we inline it. But is not a problem
because it happens only under FLAG_hydrogen_track_positions.
Also I added script_id to the structure, so it could be used later
by cpu-profiler.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/996153003
Cr-Commit-Position: refs/heads/master@{#27134}
2015-03-11 13:51:25 +00:00
titzer
0f6702562e
Extract ParseInfo from CompilationInfo.
...
Rationale: separate the inputs and outputs of parsing + analysis from the business of compiling (i.e. generating machine code).
BUG=
Review URL: https://codereview.chromium.org/974213002
Cr-Commit-Position: refs/heads/master@{#27078}
2015-03-09 14:51:24 +00:00
Benedikt Meurer
25895aeeaf
[turbofan] Add support for inlining of builtins.
...
We mark certain builtins for inlining, and those should always be
inlined into optimized code (CrankShaft already handles it this way), so
we should support that in TurboFan as well. Currently this mainly
affects a certain set of Math functions, but once have the basics in
place we can extend this to any kind of builtin/code stub/accessor.
This adds a new flag --turbo_builtin_inlining (enabled by default), that
forces the inliner to always inline builtins marked for inlining, but
does not affect inlining of other functions (this is still controlled by
the --turbo-inlining flag).
BUG=v8:3952
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/993473002
Cr-Commit-Position: refs/heads/master@{#27059}
2015-03-09 08:05:45 +00:00
yangguo
ce45b00e4b
Serializer: correctly deal with internal references.
...
Internal references are absolute addresses into the instruction
stream. Turn them into relative addresses when serializing and
back when deserializing to keep them valid.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/976623002
Cr-Commit-Position: refs/heads/master@{#27020}
2015-03-05 13:46:46 +00:00
yurys
e33ae81ce1
Allow passing sourceMapUrl when compiling scripts
...
According to Source Map specification [1] source map url can be passed either as a magic comment at the end of script or as SourceMap http header. We already parse the former value and expose it on Script object. This change allows to unify the way we deal with source map urls received in http header by providing api for passing that url into the script being compiled.
source_map_url is intentionally not passed into CompilationCacheScript::Lookup. The cache is anyways disabled when debugger is on.
[1] https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
LOG=Y
BUG=chromium:462572
Review URL: https://codereview.chromium.org/983603003
Cr-Commit-Position: refs/heads/master@{#27017}
2015-03-05 13:03:57 +00:00
loislo
cbda41c88a
CpuProfiler: do not calculate positions if it is not necessary (TryInline part).
...
TryInline needed position only for the case when we track positions.
We can drop the position argument and use the current position from GraphBuilder.
The only problem that it doesn't match with the inline point.
The reason of that was the fact that builder had moved the position forward by
visiting arguments expressions.
I fixed this by restoring the current positon in HOptimizedGraphBuilderWithPositions::Visit*
BUG=452067
LOG=n
Review URL: https://codereview.chromium.org/962593005
Cr-Commit-Position: refs/heads/master@{#26953}
2015-03-03 08:42:41 +00:00
wingo
652061ed72
Rebase GDBJIT interface solely on JITCodeEvent
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/958623002
Cr-Commit-Position: refs/heads/master@{#26858}
2015-02-25 15:40:57 +00:00
bmeurer
49b112e117
Revert of Rebase GDBJIT interface solely on JITCodeEvent (patchset #2 id:20001 of https://codereview.chromium.org/957673004/ )
...
Reason for revert:
Doesn't compile
Original issue's description:
> Rebase GDBJIT interface solely on JITCodeEvent
>
> R=mstarzinger@chromium.org
> BUG=
>
> Committed: 8989d828e8
TBR=mstarzinger@chromium.org ,wingo@igalia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/954833004
Cr-Commit-Position: refs/heads/master@{#26848}
2015-02-25 12:03:04 +00:00
Andy Wingo
8989d828e8
Rebase GDBJIT interface solely on JITCodeEvent
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/957673004
Cr-Commit-Position: refs/heads/master@{#26847}
2015-02-25 11:49:47 +00:00
titzer
fbb26b21c8
[turbofan] Only compile hot asm functions with TurboFan if --turbo-osr flag is turned on.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/951053002
Cr-Commit-Position: refs/heads/master@{#26832}
2015-02-24 18:26:15 +00:00
loislo
cc1458a9a4
CpuProfile: rename HSourcePosition to SourcePosition and move it to compiler.*
...
Fix CompilationInfo::TraceInlinedFunction argument.
Fix leaked CodeTracer in Isolate
BUG=452067
LOG=n
Review URL: https://codereview.chromium.org/928343003
Cr-Commit-Position: refs/heads/master@{#26689}
2015-02-17 12:26:14 +00:00
loislo
e60ec273cc
CpuProfiler: move InlinedFunctionInfo class from HGraphBuilder to CompilationInfo.
...
A function could be deoptimized due to a deopt in the inlined code.
The inlined function might be defined in another script. So we need to
track the information about the inlined functions (scriptId and offset).
We already have the tracking code which is behind FLAG_hydrogen_track_position.
So as the first step we need to make the info accessible by CPU profiler.
In the follow-up patches I'll add the code which will enable position
tracking and push the info into CodeEntry entries.
BUG=452067
LOG=n
Review URL: https://codereview.chromium.org/914413007
Cr-Commit-Position: refs/heads/master@{#26680}
2015-02-17 09:44:52 +00:00
jarin
d0758949e1
[turbofan] Clear pending exception from unsuccessful compilation.
...
BUG=chromium:458987
LOG=n
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/932603002
Cr-Commit-Position: refs/heads/master@{#26665}
2015-02-16 14:25:23 +00:00
caitpotter88
8bb2e39774
Implement ES6 rest parameters
...
LOG=Y
BUG=v8:2159
R=dslomov@chromium.org , arv@chromium.org , marja@chromium.org
Review URL: https://codereview.chromium.org/816913003
Cr-Commit-Position: refs/heads/master@{#26645}
2015-02-14 00:15:12 +00:00
Dmitry Lomov
7866f00508
Remove --experimental-classes flag and related dead code.
...
R=arv@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/919643008
Cr-Commit-Position: refs/heads/master@{#26631}
2015-02-12 20:07:15 +00:00
rossberg
eecde44f82
Properly thread language mode to compilation cache
...
Fixes the TSAN issue.
R=mstarzinger@chromium.org
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/923573002
Cr-Commit-Position: refs/heads/master@{#26623}
2015-02-12 16:29:54 +00:00
ulan
1291400fbb
Fix GCMole after b79b985988
...
NOTREECHECKS=true
BUG=
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/917193002
Cr-Commit-Position: refs/heads/master@{#26622}
2015-02-12 16:00:38 +00:00
ulan
b79b985988
Use weak cells in dependent code.
...
BUG=
Review URL: https://codereview.chromium.org/871253005
Cr-Commit-Position: refs/heads/master@{#26614}
2015-02-12 13:21:13 +00:00
marja
df0cb9999f
Parsing: Make Parser not know about Isolate during background parsing.
...
Parser must be able to operate independent of Isolate and the V8 heap during
parsing. After the heap-independent phase, there is a heap dependent phase,
during which we internalize strings, handle errors, etc.
This makes Isolate (also via CompilationInfo) unaccessible during parsing, and
thus decreases the probability of accidental code changes which would add
heap-dependent operations into the heap-independent phase.
Since Isolate is also accessible via CompilationInfo, now CompilationInfo is
only passed to the entry points of parsing, and not stored in Parser.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/908173003
Cr-Commit-Position: refs/heads/master@{#26612}
2015-02-12 13:02:44 +00:00
svenpanne
222001ace4
Removed one bogus CompilationInfo constructor.
...
Use a fake code stub instead, basically following the null object pattern.
Review URL: https://codereview.chromium.org/918973002
Cr-Commit-Position: refs/heads/master@{#26610}
2015-02-12 12:57:19 +00:00
bmeurer
4465836c8a
Fix invalid use of int in Zone.
...
Review URL: https://codereview.chromium.org/924453002
Cr-Commit-Position: refs/heads/master@{#26609}
2015-02-12 12:47:18 +00:00
titzer
688dcc3aa9
Move SetFunctionInfo() from compiler.cc to objects.cc. Rationale: not related to generating code.
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/917433007
Cr-Commit-Position: refs/heads/master@{#26583}
2015-02-11 14:52:13 +00:00
dslomov
bf49be39f3
new classes: implement new.target passing to superclass constructor.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Committed: https://crrev.com/8aed43e82c6d2742fe5988603cb8841324cc942b
Cr-Commit-Position: refs/heads/master@{#26560}
Review URL: https://codereview.chromium.org/908883002
Cr-Commit-Position: refs/heads/master@{#26572}
2015-02-11 09:47:51 +00:00
svenpanne
41e74ad4e8
Relaxed parameter types a bit.
...
Somehow these changes didn't make it into https://codereview.chromium.org/915583002 ... :-/
Review URL: https://codereview.chromium.org/919473005
Cr-Commit-Position: refs/heads/master@{#26567}
2015-02-11 08:52:38 +00:00
dslomov
8e4ec9dd13
Revert of new classes: implement new.target passing to superclass constructor. (patchset #9 id:150001 of https://codereview.chromium.org/908883002/ )
...
Reason for revert:
Breaks Linux64 release
Original issue's description:
> new classes: implement new.target passing to superclass constructor.
>
> R=arv@chromium.org ,rossberg@chromium.org
> BUG=v8:3834
> LOG=N
>
> Committed: https://crrev.com/8aed43e82c6d2742fe5988603cb8841324cc942b
> Cr-Commit-Position: refs/heads/master@{#26560}
TBR=arv@chromium.org ,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3834
Review URL: https://codereview.chromium.org/911363002
Cr-Commit-Position: refs/heads/master@{#26561}
2015-02-11 01:36:32 +00:00
dslomov
8aed43e82c
new classes: implement new.target passing to superclass constructor.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/908883002
Cr-Commit-Position: refs/heads/master@{#26560}
2015-02-11 01:23:11 +00:00
rossberg
5cd84502bf
[strong] Introduce --use-strong flag
...
R=marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/907403002
Cr-Commit-Position: refs/heads/master@{#26556}
2015-02-10 19:13:01 +00:00
adamk
70079dab13
Add basic compilation support for modules
...
This adds an "experimental" API hook (v8::ScriptCompiler::CompileModule)
allowing compilation of modules. The code gen is incredibly basic: the
module body is represented by a Block in the AST. But this at least gets
more of the pipeline working, and opens the door to writing mjsunit tests
(once d8 is modified to support module compilation).
BUG=v8:1569
LOG=n
Review URL: https://codereview.chromium.org/902093002
Cr-Commit-Position: refs/heads/master@{#26496}
2015-02-06 17:52:38 +00:00
Erik Arvidsson
b67b3c5401
Accessor functions should have no prototype property
...
This also removes some convenience functions that were not used.
BUG=v8:3700
LOG=N
R=adamk@chromium.org , adamk
Review URL: https://codereview.chromium.org/883073008
Cr-Commit-Position: refs/heads/master@{#26472}
2015-02-05 23:34:28 +00:00
marja
d21b9a1422
Add strong mode.
...
It doesn't do anything for now, but it implies strict mode. Added tests to
test-parsing.cc to test that.
BUG=
Review URL: https://codereview.chromium.org/898983002
Cr-Commit-Position: refs/heads/master@{#26460}
2015-02-05 14:11:47 +00:00
marja
c7851da4ae
Introduce LanguageMode, drop StrictMode.
...
This enables adding more language modes in the future.
For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to
use a sequence of language modes which are progressively stricter, but we can
express the language mode as combination of features.
For now, LanguageMode can only be "sloppy" or "strict", and there are
STATIC_ASSERTS in places which need to change when more modes are added.
LanguageMode is a bit like the old LanguageMode when "extended" mode was still
around (see https://codereview.chromium.org/8417035 and
https://codereview.chromium.org/181543002 ) except that it's transmitted through
all the layers (there's no StrictModeFlag).
BUG=
Review URL: https://codereview.chromium.org/894683003
Cr-Commit-Position: refs/heads/master@{#26419}
2015-02-04 09:34:26 +00:00
Benedikt Meurer
d8cfbc633d
[turbofan] Split pure nodes in the scheduler if beneficial.
...
If a (pure) node has two or more uses, but there exists a path from the
common dominator of these uses to end, which does not contain a use,
then we split the node such that no unnecessary computation takes place.
Note however, that this only applies if the node cannot be hoisted out
of a loop.
BUG=v8:3864
LOG=n
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/899433005
Cr-Commit-Position: refs/heads/master@{#26404}
2015-02-03 14:51:08 +00:00
titzer
9df88454c0
Initialize CompilationInfo::osr_expr_stack_height correctly.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/889383002
Cr-Commit-Position: refs/heads/master@{#26382}
2015-02-02 14:30:07 +00:00
bmeurer
c65ae4f10c
Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/877753007
Cr-Commit-Position: refs/heads/master@{#26346}
2015-01-30 09:29:41 +00:00
Benedikt Meurer
883852293a
Revert "Make GCC happy again." and "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".
...
This reverts commit 6a4c0a3bae
and commit
0deaa4b629
for breaking GCC bots.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/893533003
Cr-Commit-Position: refs/heads/master@{#26342}
2015-01-30 07:19:57 +00:00
bmeurer
0deaa4b629
Initial switch to Chromium-style CHECK_* and DCHECK_* macros.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/888613002
Cr-Commit-Position: refs/heads/master@{#26340}
2015-01-30 06:25:36 +00:00
titzer
11311c083a
[turbofan] Fix OSR compilations of for-in.
...
R=mstarzinger@chromium.org
LOG=Y
BUG=
Review URL: https://codereview.chromium.org/890543002
Cr-Commit-Position: refs/heads/master@{#26333}
2015-01-29 17:40:23 +00:00
kozyatinskiy
eaae397c42
[V8] Added Script::is_debugger_script flag for embedders
...
In DevTools we need one more flag for script origin - is debugger script. We already have "is shared origin" flag. The new flag added by analogy with the old but new has accessor in script object.
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/879553002
Cr-Commit-Position: refs/heads/master@{#26324}
2015-01-29 14:01:33 +00:00
yangguo
d684ece016
Only add API-triggered compilation to compile-script histogram.
...
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/879273003
Cr-Commit-Position: refs/heads/master@{#26308}
2015-01-28 15:55:17 +00:00
yangguo
a699645b71
Probe same-isolate compilation cache before deserializing.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/875863002
Cr-Commit-Position: refs/heads/master@{#26266}
2015-01-26 10:57:05 +00:00
danno
c7b09aac31
Remove the dependency of Zone on Isolate
...
Along the way:
- Thread isolate parameter explicitly through code that used to
rely on getting it from the zone.
- Canonicalize the parameter position of isolate and zone for
affected code
- Change Hydrogen New<> instruction templates to automatically
pass isolate
R=mstarzinger@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/868883002
Cr-Commit-Position: refs/heads/master@{#26252}
2015-01-23 15:20:00 +00:00
dslomov
22ce08ade6
new classes: change semantics of super(...) call and add new.target to construct stub.
...
R=arv@chromium.org ,rossberg@chromium.org
BUG=v8:3834
LOG=N
Review URL: https://codereview.chromium.org/803933008
Cr-Commit-Position: refs/heads/master@{#26227}
2015-01-22 18:39:47 +00:00
vogelheim
6f9d60cc6f
Implement AggregatableHistogramTimer and use it to measure how much time
...
of running a script is really spent in compilation. That is, sum up the
total time spent compiling (parsing + compile proper) within a run call
as seen through the API.
@jochen: So many questions:
- Is it ok to re-use V8.CompileLazy?
This measures something a little different.
- clang-format does funny things to the huge macro definitions.
I accepted clang-format changes for all code, but reverted for
the #define orgies in counters.h. ok?
- Am I measuring the right thing. That is, are Aggregat[ing|ed]TimerScope
in the right place?
I'll fiddle a bit more with this to see if it does the right thing. Would
be happy if you could still review now-ish.
BUG=
Review URL: https://codereview.chromium.org/790413004
Cr-Commit-Position: refs/heads/master@{#26226}
2015-01-22 18:38:29 +00:00
mstarzinger
0ef9ce4ad8
Remove exorbitant duplication of DebuggerHasBreakpoints.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/804713006
Cr-Commit-Position: refs/heads/master@{#26145}
2015-01-19 16:51:52 +00:00
mstarzinger
6daecbd5ff
Allow --always-opt to go further into the pipeline (2).
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/855873002
Cr-Commit-Position: refs/heads/master@{#26131}
2015-01-19 12:35:19 +00:00
yangguo
db653e547c
Allow nested compile-script histogram scopes.
...
R=bmeurer@chromium.org
BUG=chromium:449959
LOG=N
Review URL: https://codereview.chromium.org/822823003
Cr-Commit-Position: refs/heads/master@{#26128}
2015-01-19 11:33:14 +00:00
mstarzinger
459c45db0a
Allow --always-opt to go further into the pipeline (1).
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/841213003
Cr-Commit-Position: refs/heads/master@{#26112}
2015-01-16 22:20:09 +00:00
yangguo
6586bd19fd
Introduce new compile histogram that includes parsing/caching.
...
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/851953003
Cr-Commit-Position: refs/heads/master@{#26059}
2015-01-14 15:22:51 +00:00
Andy Wingo
79a8caec54
AbortOptimization, RetryOptimization preserve first bailout reason
...
The current logic appears to have been introduced in
https://codereview.chromium.org/596783002 .
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/836033005
Cr-Commit-Position: refs/heads/master@{#26043}
2015-01-13 14:37:09 +00:00
Ben Noordhuis
ad0069e8fe
compiler: enable optimizer for function literals
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/821553003
Patch from Ben Noordhuis <ben@strongloop.com>.
Cr-Commit-Position: refs/heads/master@{#25992}
2015-01-08 13:13:59 +00:00
Sven Panne
50b7ca5593
Improved --trace-opt output a bit.
...
This ensures that we always have a kind of "brace" around the actual compilation
with --trace-opt. Previously this was coupled to --trace-hydrogen for
Crankshaft, and there was no output at the start of the compilation for
TurboFan.
Removed redundant "[completed...]" output: Whenever the compilation was
successful, we have already printed "[optimizing...took...]".
Output total TurboFanning time with --trace-opt, too (basically as graph
building time, this is rather arbitrary).
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/819613002
Cr-Commit-Position: refs/heads/master@{#25900}
2014-12-19 11:47:27 +00:00
svenpanne
71bb00e261
Consistently use only one of virtual/OVERRIDE/FINAL.
...
FINAL implies OVERRIDE, which in turn implies virtual, so there's no need to use
more than one of these. The Google C++ style guide even requires this, see
http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Inheritance .
While we're here, port r24662 to x87.
The net result is that v8 compiles again with a current clang.
BUG=v8:3753
LOG=y
Review URL: https://codereview.chromium.org/797943002
Cr-Commit-Position: refs/heads/master@{#25792}
2014-12-12 10:44:25 +00:00
jochen
aa0664e58f
Disable generating of code cache if the debugger is loaded
...
BUG=440880
R=yangguo@chromium.org ,dcarney@chromium.org,vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/796823002
Cr-Commit-Position: refs/heads/master@{#25774}
2014-12-11 12:58:47 +00:00
mstarzinger
8acf387620
Make --no-turbo-types work on all paths through the pipeline.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/785933002
Cr-Commit-Position: refs/heads/master@{#25717}
2014-12-09 04:47:59 +00:00
dslomov
b4f3250712
Better message location for 'super(...)' restriction error.
...
R=arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/776563002
Cr-Commit-Position: refs/heads/master@{#25714}
2014-12-08 15:55:03 +00:00
dslomov
65aa17b9c3
harmony-classes: Implement 'super(...)' call syntactic restriction.
...
R=rossberg@chromium.org ,arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/766663003
Cr-Commit-Position: refs/heads/master@{#25555}
2014-11-28 04:08:58 +00:00
Michael Stanton
c142994f74
Flesh out vector ic state query and set mechanisms.
...
The IC system now fully integrates the vector concept and can
handle loads and keyed loads vector-based.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/754303003
Cr-Commit-Position: refs/heads/master@{#25552}
2014-11-27 16:36:40 +00:00
titzer
9da4998204
Abort optimization in corner case.
...
The %OptimizeFunctionOnNextCall sledgehammer can cause a function to be
marked for optimization before it's ever been compiled by fullcode.
This can lead to the situation where a function doesn't have optimization
disabled until we try to compile it optimized.
Basically, the assert should just handle this case more gracefully.
R=yangguo@chromium.org
BUG=436893
LOG=Y
Review URL: https://codereview.chromium.org/760063002
Cr-Commit-Position: refs/heads/master@{#25528}
2014-11-26 16:57:52 +00:00
yangguo
33853f73a7
Partially revert "Optimize function across closures."
...
BUG=chromium:434447
Review URL: https://codereview.chromium.org/755173002
Cr-Commit-Position: refs/heads/master@{#25500}
2014-11-25 13:22:04 +00:00
yangguo
7904576039
Refactor use of Isolate::use_crankshaft.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/755883003
Cr-Commit-Position: refs/heads/master@{#25499}
2014-11-25 12:48:06 +00:00
mstarzinger
7aad1d2e42
Revert "Remove deprecated ShouldSelfOptimize machinery."
...
This reverts commit 9da92c1a33
because of performance regressions.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/752613002
Cr-Commit-Position: refs/heads/master@{#25467}
2014-11-21 17:28:38 +00:00
mstarzinger
9da92c1a33
Remove deprecated ShouldSelfOptimize machinery.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/582683002
Cr-Commit-Position: refs/heads/master@{#25459}
2014-11-21 11:23:52 +00:00
mstarzinger
bf11bf4758
Remove superflous SharedFunctionInfo::uses_super call.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/736383002
Cr-Commit-Position: refs/heads/master@{#25445}
2014-11-20 16:22:04 +00:00
yangguo
c64b47f552
When optimizing deserialized code, make sure IC state is preserved.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/737373003
Cr-Commit-Position: refs/heads/master@{#25444}
2014-11-20 16:20:56 +00:00
jochen
821736a674
Remove --clever-optimizations
...
We should always be clever
BUG=none
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/723023003
Cr-Commit-Position: refs/heads/master@{#25431}
2014-11-20 08:54:42 +00:00
yangguo
7e2ebd4c00
Reland "Soft fail for invalid cache data."
...
Review URL: https://codereview.chromium.org/733023003
Cr-Commit-Position: refs/heads/master@{#25378}
2014-11-17 12:16:40 +00:00
yangguo
6714365a30
Reland "Optimize function across closures." (again).
...
Review URL: https://codereview.chromium.org/707463002
Cr-Commit-Position: refs/heads/master@{#25367}
2014-11-17 08:43:00 +00:00
Michael Starzinger
20df102b20
Make TurboFan inlining work without deoptimization.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/726823002
Cr-Commit-Position: refs/heads/master@{#25354}
2014-11-14 10:34:51 +00:00
Andy Wingo
1503d0e78c
Move feedback slot allocation to post-pass
...
R=mvstanton@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/670953003
Cr-Commit-Position: refs/heads/master@{#25348}
2014-11-14 08:21:33 +00:00
Erik Arvidsson
04719195a2
Classes: Cleanup default constructor flag
...
Now that we keep track of whether a function contains super we do not
need kDefaultConstructorCallSuper
BUG=None
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/718833002
Cr-Commit-Position: refs/heads/master@{#25337}
2014-11-13 16:50:21 +00:00
Daniel Vogelheim
f83f10973e
Revert "Soft fail for invalid cache data."
...
This reverts commit eafce666f4
.
Original commit failed some tests w/ memory leaks.
TBR=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/724053004
Cr-Commit-Position: refs/heads/master@{#25336}
2014-11-13 16:47:05 +00:00
Yang Guo
eafce666f4
Soft fail for invalid cache data.
...
API=ScriptCompiler::CachedData::rejected
LOG=Y
R=vogelheim@google.com , vogelheim@chromium.org
Review URL: https://codereview.chromium.org/724023002
Cr-Commit-Position: refs/heads/master@{#25335}
2014-11-13 15:42:47 +00:00
Andy Wingo
910711a169
Move BailoutReason and flags computation to post-pass
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/668143003
Cr-Commit-Position: refs/heads/master@{#25321}
2014-11-13 09:57:56 +00:00
dslomov@chromium.org
0e2f7e3c35
Re-enable serialization under harmony-scoping.
...
R=yangguo@chromium.org
BUG=v8:3689
LOG=N
Review URL: https://codereview.chromium.org/717153002
Cr-Commit-Position: refs/heads/master@{#25294}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 13:12:50 +00:00
dslomov@chromium.org
02709e5891
Disable top level serialization under harmony_scoping. It has broken tests.
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/717143002
Cr-Commit-Position: refs/heads/master@{#25293}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 12:23:41 +00:00
dslomov@chromium.org
eacdfa0b7a
Various clean-ups after top-level lexical declarations are done.
...
1. Global{Context,Scope}=>Script{Context,Scope}
2. Enable fixed tests
3. Update comments
R=rossberg@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/716833002
Cr-Commit-Position: refs/heads/master@{#25291}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 11:35:18 +00:00
yangguo@chromium.org
6de28b2be1
Revert "Reland "Optimize function across closures.""
...
This reverts commit r25142.
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/702853002
Cr-Commit-Position: refs/heads/master@{#25145}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 11:37:42 +00:00
yangguo@chromium.org
1cdf4e9308
Reland "Optimize function across closures."
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/703603003
Cr-Commit-Position: refs/heads/master@{#25142}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 11:12:41 +00:00
yangguo@chromium.org
c66a3f95ae
Revert "Optimize function across closures."
...
This reverts r25102.
TBR=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/699143002
Cr-Commit-Position: refs/heads/master@{#25104}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 11:40:45 +00:00
yangguo@chromium.org
1d66934565
Optimize function across closures.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/699633002
Cr-Commit-Position: refs/heads/master@{#25102}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 11:06:44 +00:00
erikcorry@chromium.org
3d62e24c5f
Introduce phantom weak handles in the API and use them internally for debug info
...
R=ulan@chromium.org , jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/687003005
Cr-Commit-Position: refs/heads/master@{#25083}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-03 17:24:22 +00:00
yangguo@chromium.org
ba1aef3fab
Do not compile with Turbofan if we cannot deopt for debugging.
...
R=jarin@chromium.org
BUG=v8:3660
LOG=N
Review URL: https://codereview.chromium.org/677843005
Cr-Commit-Position: refs/heads/master@{#25020}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-30 14:40:44 +00:00
yangguo@chromium.org
1c4f80836a
Eager compile for debugging when debug is active.
...
Scenario:
On reload, Devtools restores previously set break points. At this point,
since Devtools is already opened, all code is compiled with debug break
slots. No break points exist yet, so we would lazily compile inner
functions, even ones that cannot be compiled lazily without a context.
So when we use Debug::FindSharedFunctionInfoInScript to find the break
positions, those lazily compiled functions are skipped.
By eagerly compiling when debug is active, we make sure that whenever
Devtools is open, functions that cannot be compiled lazily without a
context are always compiled with its outer function.
R=ulan@chromium.org
BUG=chromium:424142
LOG=N
Review URL: https://codereview.chromium.org/683413003
Cr-Commit-Position: refs/heads/master@{#24971}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 10:28:44 +00:00
wingo@igalia.com
d518d3bce7
Move AST node counting to post-pass
...
R=mstarzinger@chromium.org , svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/683023002
Cr-Commit-Position: refs/heads/master@{#24937}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 13:24:18 +00:00
yangguo@chromium.org
0dfbf83468
Use shared function info for eval cache key.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/678843004
Cr-Commit-Position: refs/heads/master@{#24927}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 10:01:44 +00:00
wingo@igalia.com
0755160e28
Revert "Move AST node counting to post-pass"
...
This reverts commit 698356720824559a6bd81c24be707b44ac277526 for
breaking regress-96526-002 among other things.
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/678033002
Cr-Commit-Position: refs/heads/master@{#24910}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 16:25:40 +00:00
wingo@igalia.com
88e0c38c9a
Move AST node counting to post-pass
...
R=mstarzinger@chromium.org , svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/675493002
Cr-Commit-Position: refs/heads/master@{#24909}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 15:00:43 +00:00
erikcorry@chromium.org
716648065a
Revert 'Introduce phantom weak handles in the API and use them internally for debug info'
...
Revert of https://codereview.chromium.org/649563006/ due to layout test
failures.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/677403002
Cr-Commit-Position: refs/heads/master@{#24901}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 12:03:39 +00:00
erikcorry@chromium.org
891e289d0f
Introduce phantom weak handles in the API and use them internally for debug info
...
R=jochen@chromium.org , ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/649563006
Cr-Commit-Position: refs/heads/master@{#24899}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 11:05:11 +00:00
jarin@chromium.org
23df66ee24
Add more missing deopts
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/639883002
Cr-Commit-Position: refs/heads/master@{#24886}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-26 10:25:48 +00:00
yangguo@chromium.org
601b776e7e
Use hash map to look for objects in the root array when serializing.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/645533003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:43:17 +00:00
wingo@igalia.com
4eddbacabf
Assign bailout and type feedback IDs in a post-pass
...
This will allow us to move expressions from one function to another, for
example when the parser determines that a given cover grammar instance
is actually the default value initializer for an arrow function.
This is a re-land of https://codereview.chromium.org/636403003/ with a
fix for the arm64 code generator.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/663373003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 12:16:37 +00:00
svenpanne@chromium.org
d66d302b00
Revert "Assign bailout and type feedback IDs in a post-pass"
...
This reverts r24757, which breaks the ARM64 simulator build.
Simple repro:
out/arm64.debug/d8 -e 'eval("(function(){ const x; var x; })")'
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/652543006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 10:55:12 +00:00
svenpanne@chromium.org
2b8d734037
Assign bailout and type feedback IDs in a post-pass
...
This will allow us to move expressions from one function to another, for
example when the parser determines that a given cover grammar instance
is actually the default value initializer for an arrow function.
R=svenpanne@chromium.org , marja@chromium.org
BUG=
Review URL: https://codereview.chromium.org/636403003
Patch from Andy Wingo <wingo@igalia.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:52:32 +00:00
mvstanton@chromium.org
c688ebd858
vector-based ICs did not update type feedback counts correctly.
...
BUG=v8:3605
LOG=N
R=jkummerow@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/650073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 11:42:56 +00:00
yangguo@chromium.org
f0e3ae8e24
Prohibit serializing with --harmony-scoping.
...
R=jochen@chromium.org
BUG=v8:3628
LOG=N
Review URL: https://codereview.chromium.org/650423005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 09:54:48 +00:00
yangguo@chromium.org
4f9fd83d85
Break deserializer reservations into chunks that fit onto a page.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/653033002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-15 14:04:53 +00:00
jkummerow@chromium.org
b774d2068b
Always compile functions in the snapshot with deoptimization support.
...
This prevents an unnecessary deopt-reopt cycle due to type feedback
having been thrown away as part of recompiling with deopt support.
(For non-snapshotted functions this is not an issue.)
Bonus: Add missing space in --trace-ic output, and provide names for
PropertyDescriptor's methods, because passing anonymous functions to
SetUpLockedPrototype frightens and confuses our FuncNameInferrer.
R=hpayer@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/648243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 09:59:24 +00:00
yangguo@chromium.org
67f43055d2
Fix data race when concurrent compilation is aborted due to dependency change.
...
R=marja@chromium.org
BUG=chromium:419189
LOG=N
Review URL: https://codereview.chromium.org/616263003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:41:19 +00:00
yangguo@chromium.org
ad24cdae72
Do not serialize non-lazy compiled function literals.
...
... and some small refactorings.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/594513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 07:53:22 +00:00
mstarzinger@chromium.org
ea97f413ee
Extend JSBuiltinReducer to cover Math.fround as well.
...
R=bmeurer@chromium.org
TEST=compiler-unittests/JSBuiltinReducerTest.MathFround
Review URL: https://codereview.chromium.org/594183004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 14:55:13 +00:00
yangguo@chromium.org
43538e57a4
Refactor bailout reasons and disable optimization in more cases.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/596783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 07:08:27 +00:00
vogelheim@chromium.org
2bf7ad0541
Add histogram timers for (de-)serialization during compilation.
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/578263004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 17:19:19 +00:00
mstarzinger@chromium.org
28385dc9c0
Fix profiler for TurboFan by reducing duplication.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/592703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 12:32:47 +00:00
titzer@chromium.org
5881257344
Widen the intake valve for TurboFan.
...
R=danno@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/582703002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 12:50:50 +00:00
dslomov@chromium.org
e36aacdee2
Implement loads and calls from 'super'
...
R=verwaest@chromium.org , arv@chromium.org
BUG=v8:3330
LOG=N
Review URL: https://codereview.chromium.org/527963002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 11:08:04 +00:00
mstarzinger@chromium.org
15b563cf74
Remove dead CompilationInfo::DisableOptimization predicate.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/585443002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 11:13:36 +00:00
mvstanton@chromium.org
134a89b11f
Introduce TypeFeedbackVector, as FixedArray grew constrictive.
...
The TypeFeedbackVector is poised to host significant functionality. While it
remains a FixedArray under the covers, we need a place to hold logic and
definitions unique to its function.
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/581993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:59:53 +00:00
mstarzinger@chromium.org
1debacf6aa
Remove Compiler::RecordFunctionCompilation from interface.
...
R=sigurds@chromium.org
Review URL: https://codereview.chromium.org/582593003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:41:45 +00:00
mstarzinger@chromium.org
4413d318a6
Unify use-sites of EnsureDeoptimizationSupport.
...
R=sigurds@chromium.org
Review URL: https://codereview.chromium.org/563123004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:02:36 +00:00
titzer@chromium.org
892e6621f2
Don't update the compilation size statistics when doing an optimized compile.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/575393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 08:47:13 +00:00
titzer@chromium.org
f6807d7897
Rename Runtime_CompileUnoptimized to Runtime_CompileLazy, because that is what it does. Split Compiler::GetUnoptimizedCode into two variants, one for lazy compilation (which can return optimized code!) and the other that actually returns unoptimized code.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/547293004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 15:29:42 +00:00
titzer@chromium.org
cbf66711af
Minor compiler pipeline refactoring. Inline UpdateSharedFunctionInfo and make Parser::Parse responsible for setting the strict mode of the CompilationInfo.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/555553003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:34:46 +00:00
marja@chromium.org
eb19fc013a
Add script streaming API.
...
Blink will use this API to stream script data into V8 as the scripts
load. During loading, V8 can already parse the scripts. They will be then
compiled and executed when the loading is complete.
This is a reincarnation of https://codereview.chromium.org/366153002/
with fixes.
BUG=
R=jochen@chromium.org , rossberg@chromium.org , svenpanne@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/566553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 09:12:08 +00:00
bmeurer@chromium.org
4de58e49fd
[arm] Disable --turbo-types by default instead of ignoring the flag.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/561913004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:50:38 +00:00
bmeurer@chromium.org
baa5a2d623
Disable typed pipeline for non-turbofan arch's after r23859.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/568663002
Patch from Paul Lind <paul.lind@imgtec.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 05:49:01 +00:00
mstarzinger@chromium.org
d27e94818a
Also disable typed pipeline on ARM after r23859.
...
R=ulan@chromium.org
BUG=v8:3553
LOG=N
Review URL: https://codereview.chromium.org/562913003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 15:13:59 +00:00
marja@chromium.org
90af365ae3
Revert "Add script streaming API."
...
This reverts r23865
Revert "Fix compilation after r23865."
This reverts r23867
Reason: the test contains characters too special for Windows's taste.
TBR=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/545203003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 11:29:28 +00:00
marja@chromium.org
61c9683d71
Add script streaming API.
...
Blink will use this API to stream script data into V8 as the scripts
load. During loading, V8 can already parse the scripts. They will be then
compiled and executed when the loading is complete.
BUG=
R=jochen@chromium.org , rossberg@chromium.org , svenpanne@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/366153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 11:06:26 +00:00
mstarzinger@chromium.org
a2add48b86
Enable typed pipeline for TurboFan (again).
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/554413003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 09:44:44 +00:00
svenpanne@chromium.org
a1337ae567
Make --turbo-inlining available on the command line.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/565593002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 09:02:18 +00:00
arv@chromium.org
45d8e74cd6
ES6: Add support for method shorthand in object literals
...
This is governed by the harmony-object-literals flag.
BUG=v8:3516
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/477263002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:39:42 +00:00
mstarzinger@chromium.org
e9b3c336e6
Properly blacklist ES6 for-of statement for TurboFan.
...
R=bmeurer@chromium.org
TEST=mjsunit/es6
Review URL: https://codereview.chromium.org/547343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 09:39:39 +00:00
titzer@chromium.org
4c53bb086e
Fix more fallout from making OptimizeFunctionOnNextCall work as advertised.
...
R=jarin@chromium.org
BUG=411262
Review URL: https://codereview.chromium.org/544213002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 15:31:33 +00:00
titzer@chromium.org
4923810a68
Remove redundant --always-full-compiler flag.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/538613006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 16:29:47 +00:00
titzer@chromium.org
0ee34c8354
Fix OptimizeFunctionOnNextCall fix.
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/538003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 14:07:17 +00:00
titzer@chromium.org
67b89f9db6
Fix %OptimizeFunctionOnNextCall to actually work when the function has not yet been compiled.
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/543643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 11:27:20 +00:00
bmeurer@chromium.org
30f18f0f7d
Use Chrome compatible naming for compiler specifics.
...
Less useless creativity is best creativity!
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/526223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +00:00
mstarzinger@chromium.org
cc8cec354c
Preliminary lowering of typed array loads in TF.
...
R=titzer@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad
Review URL: https://codereview.chromium.org/516853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 14:35:11 +00:00
mstarzinger@chromium.org
f097880c12
Make filter for optimized code sharing finer.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/506793003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 17:04:34 +00:00
titzer@chromium.org
a4cdbfc43a
Use an enum of Flags internally in CompilationInfo.
...
This is a first step in cleaning up CompilationInfo; a subsequent logical step
would be to inline most is_* and Set* and Mark* calls so that most callers
can use call info.SetFlag(CompilationInfo::kMyFlag), or at the very least,
rename them all to be consistent with their enum flag names.
R=yangguo@chromium.org , bmeuer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/504163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 14:41:58 +00:00
mstarzinger@chromium.org
9fcbeb4a8e
Bring back test coverage for baseline TurboFan.
...
R=sigurds@chromium.org
Review URL: https://codereview.chromium.org/498243002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 13:07:09 +00:00
marja@chromium.org
77d06401ad
Take ast node id counting away from Isolate.
...
When we're going to parse multiple scripts in parallel, we cannot have the
Isolate count the ast node ids.
Now the counter is stored in CompilationInfo instead. This is because we need to
add ast nodes after parsing too.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/490173002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:12:29 +00:00
jarin@chromium.org
8da0b4eca6
Couple more debugger tests working with Turbofan.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/498493002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 07:44:18 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
mstarzinger@chromium.org
f5b0a37485
Extend TF test coverage to unsupported targets.
...
R=titzer@chromium.org
TEST=all
Review URL: https://codereview.chromium.org/416233003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 13:51:23 +00:00
mstarzinger@chromium.org
204f1ce879
Extend TF test coverage to supported targets.
...
R=danno@google.com , titzer@chromium.org
TEST=all
Review URL: https://codereview.chromium.org/432313002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 10:47:01 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
yangguo@chromium.org
fc5b5f2dc5
Propagate serialization flag to inner functions.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/407383003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 09:35:06 +00:00
yangguo@chromium.org
88000d039f
Fix debugger-related issues in the code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/410883003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 08:27:04 +00:00
yangguo@chromium.org
54b2f8da53
Add profiling to code serializer.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/408143004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-22 10:35:38 +00:00
rossberg@chromium.org
8023c9f564
Implement basic code generation for arrow functions
...
Implements code generation for arrow functions by desugaring them into
a FunctionLiteral. For the moment, a normal FUNCTION_SCOPE is used, so
"this" and "arguments" behave as in normal functions. Implementing the
correct scoping rules is to be done later on.
BUG=v8:2700
LOG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/382893003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 09:58:01 +00:00
vogelheim@chromium.org
a42612b4a7
Change ScriptCompiler::CompileOptions to allow for two 'cache' modes
...
(parser or code) and to be explicit about cache consumption or production
(rather than making presence of cached_data imply one or the other.)
Also add a --cache flag to d8, to allow testing the functionality.
-----------------------------
API change
Reason: Currently, V8 supports a 'parser cache' for repeatedly executing the same script. We'd like to add a 2nd mode that would cache code, and would like to let the embedder decide which mode they chose (if any).
Note: Previously, the 'use cached data' property was implied by the presence of the cached data itself. (That is, kNoCompileOptions and source->cached_data != NULL.) That is no longer sufficient, since the presence of data is no longer sufficient to determine /which kind/ of data is present.
Changes from old behaviour:
- If you previously didn't use caching, nothing changes.
Example:
v8::CompileUnbound(isolate, source, kNoCompileOptions);
- If you previously used caching, it worked like this:
- 1st run:
v8::CompileUnbound(isolate, source, kProduceToCache);
Then, source->cached_data would contain the
data-to-be cached. This remains the same, except you
need to tell V8 which type of data you want.
v8::CompileUnbound(isolate, source, kProduceParserCache);
- 2nd run:
v8::CompileUnbound(isolate, source, kNoCompileOptions);
with source->cached_data set to the data you received in
the first run. This will now ignore the cached data, and
you need to explicitly tell V8 to use it:
v8::CompileUnbound(isolate, source, kConsumeParserCache);
-----------------------------
BUG=
R=marja@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/389573006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 12:18:33 +00:00
yangguo@chromium.org
21a2f36b25
Do not expose all timer events to the API callback.
...
R=fmeawad@chromium.org
Review URL: https://codereview.chromium.org/388783004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 08:14:50 +00:00
yangguo@chromium.org
ef734e2686
Verify that source string matches serialized code.
...
R=mvstanton@chromium.org , vogelheim@chromium.org
Review URL: https://codereview.chromium.org/394793002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 06:59:14 +00:00
yangguo@chromium.org
ed744ffa17
Do not dump user source code in the code serializer.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/390303002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 10:17:22 +00:00
yangguo@chromium.org
ada872481f
Fix assertion in ScriptData.
...
R=marja@chromium.org
Review URL: https://codereview.chromium.org/383963002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:58:25 +00:00
yangguo@chromium.org
11dbc40cf3
Temporarily remove newly introduced assertion.
...
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/388753003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 06:46:24 +00:00