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
yangguo@chromium.org
339bc81390
Refactor ScriptData class for cached compile data.
...
R=marja@chromium.org , vogelheim@chromium.org
Review URL: https://codereview.chromium.org/376223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:28:05 +00:00
yangguo@chromium.org
41b74fd26f
Fix issues with code serializer.
...
- code pre-aging does not work with serializing.
- compilation info needs to remember that we compile for serializing.
- test case leaks memory.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/379563002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 14:13:50 +00:00
yangguo@chromium.org
1aede5f400
Introduce code serializer/deserializer.
...
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/373713006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 09:04:08 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +00:00
mstarzinger@chromium.org
b7d3d51a62
Remove kDontInline and simplify compiler hints.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/359733004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 08:59:23 +00:00
yangguo@chromium.org
0133d96be3
Remove script collected debug event.
...
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/358873005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-27 12:10:43 +00:00
yurys@chromium.org
013bb22cca
Remove unused Debug::AfterCompileFlags flags.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/353823004
Patch from Alexey Kozyatinskiy <kozyatinskiy@google.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 15:12:04 +00:00
yangguo@chromium.org
a2d15ce518
Compile optimized code with active debugger but no break points.
...
R=ulan@chromium.org
BUG=386492
LOG=Y
Review URL: https://codereview.chromium.org/356713004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-26 06:32:51 +00:00
jkummerow@chromium.org
0bf430c1d6
Better fix for --trace-ic source positions: Use HOptimizedGraphBuilderWithPositions
...
This reverts the changes made in r22008.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/355823003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-25 12:37:06 +00:00
marja@chromium.org
62ffc7de20
New try: Parser: Delay internalizing strings and values
...
This is a reincarnation of r21841.
The previous try was https://codereview.chromium.org/314603004/ but it regressed
JSBench and morejs.
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/335293004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-24 14:03:24 +00:00
yangguo@chromium.org
2411bc9447
Harden %FunctionBindArguments wrt optimized code cache.
...
R=jkummerow@chromium.org
BUG=387627
LOG=N
Review URL: https://codereview.chromium.org/345463005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 13:17:42 +00:00
mstarzinger@chromium.org
fec6e62dfb
Check alpha-sorting of includes during presubmit.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/333013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 08:40:11 +00:00
marja@chromium.org
9ad39a8043
Revert "Parser: Delay internalizing strings and values." (r21841)
...
Plus the fixes on top.
Reason: regresses benchmarks (JSBench) and perf (morejs).
TBR=rossberg@chromium.org
BUG=385404
LOG=N
Review URL: https://codereview.chromium.org/345513003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-18 07:30:56 +00:00
marja@chromium.org
71d07279b8
Reuse AstValueFactory when optimizing.
...
HOptimizedGraphBuilder::TryInline creates a temporary CompilationInfo and
destroys it, but we don't want the AstValueFactory to be destroyed at the same
time. Reuse the upper CompilationInfo's AstValueFactory.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/334173003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 10:42:39 +00:00
marja@chromium.org
a290cf8cda
Parser: Delay internalizing strings and values.
...
This is needed so that we can run Parser on a non-main thread (independent
of the Isolate and the V8 heap).
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/314603004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:31:56 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
yangguo@chromium.org
95a9c7e565
Merge Debugger and Debug.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/301633005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:20:58 +00:00
ishell@chromium.org
4b9c03050a
Reland r21442 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/292183008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 08:52:05 +00:00
bmeurer@chromium.org
5ad9a3b456
Fix compilation errors.
...
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/291343006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 08:20:34 +00:00
bmeurer@chromium.org
261bc88794
If map was deprecated, abort compilation and allow re-compilation.
...
Also print a message if either map became unstable or map was
deprecated, if --trace-opt is enabled.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/292323005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 08:13:12 +00:00
ishell@chromium.org
9f3183f76b
Revert "Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.""
...
This reverts r21442.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/292433016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 17:13:28 +00:00
ishell@chromium.org
00b8e6128f
Reland r21346 "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/290993009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 16:22:23 +00:00
hpayer@chromium.org
620f07e368
If map became unstable, abort compilation and allow re-compilation.
...
BUG=
R=danno@google.com
Review URL: https://codereview.chromium.org/291653006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:51:44 +00:00
ishell@chromium.org
58932c6c44
Revert "Inobject slack tracking is done on a per-closure basis instead of per-shared info basis."
...
This reverts r21436.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/295933012
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 13:38:32 +00:00
ishell@chromium.org
4a47cc5f63
Inobject slack tracking is done on a per-closure basis instead of per-shared info basis.
...
This fixes inobject slack tracking for prototype inheritance pattern that uses closures.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/283383006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 12:35:45 +00:00
yangguo@chromium.org
d0398c08ce
Make serializer non-static.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/296853007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 09:36:20 +00:00
yangguo@chromium.org
3ccedf8952
Clean up debugger flags.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/261253005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-12 13:47:01 +00:00
mvstanton@chromium.org
15dc39a86f
Simplify feedback vector creation and store in SharedFunctionInfo.
...
LOG=N
BUG=v8:3212
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/254623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 10:51:01 +00:00
svenpanne@chromium.org
4dca23f825
Added a Isolate* parameter to Serializer::enabled().
...
This parameter will soon be used when a few pseudo-classes like
Serializer are turned into real classes. The current CL is already big
enough, untying our Gordian knot called "startup" will continue...
BUG=359977
LOG=y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/260003006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-30 09:50:58 +00:00
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
yangguo@chromium.org
cb2f43cb14
Always include debugger support.
...
Motivation: we do not have test coverage for debuggersupport=off.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/256653004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 11:00:37 +00:00
mvstanton@chromium.org
5600046f59
Use MaybeHandles in Compiler to indicate failure instead of a null Handle.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/246603003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-22 14:55:47 +00:00