yangguo [Tue, 30 Jun 2015 09:43:40 +0000 (02:43 -0700)]
Debugger: allow recompiling toplevel code for debugging.
R=mvstanton@chromium.org
BUG=v8:4132
LOG=N
Review URL: https://codereview.chromium.org/
1214953003
Cr-Commit-Position: refs/heads/master@{#29370}
ishell [Tue, 30 Jun 2015 08:30:07 +0000 (01:30 -0700)]
A couple of other "stack overflow" vs. "has_pending_exception()" issues in debugger fixed.
BUG=chromium:505007
LOG=N
Review URL: https://codereview.chromium.org/
1219693003
Cr-Commit-Position: refs/heads/master@{#29369}
jarin [Tue, 30 Jun 2015 08:24:44 +0000 (01:24 -0700)]
Fix Android ARM build error.
Also removed some unused classes.
BUG=
Review URL: https://codereview.chromium.org/
1212643010
Cr-Commit-Position: refs/heads/master@{#29368}
yangguo [Tue, 30 Jun 2015 07:48:23 +0000 (00:48 -0700)]
Increase code space allowance for first page size.
This has become necessary as we have more experimental natives
that run after deserializing from the snapshot.
R=hpayer@chromium.org
BUG=v8:4200
LOG=N
Review URL: https://codereview.chromium.org/
1218973002
Cr-Commit-Position: refs/heads/master@{#29367}
bmeurer [Tue, 30 Jun 2015 07:37:21 +0000 (00:37 -0700)]
[turbofan] Remove explicit context specialization from inlining.
Ideally inliner itself should not deal with context specialization at
all, since this is all handled in the pipeline instead (actually
inlining already runs together with context specialization), and the
inlining logic should not care about the specialization mode.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1217973003
Cr-Commit-Position: refs/heads/master@{#29366}
bmeurer [Tue, 30 Jun 2015 07:36:16 +0000 (00:36 -0700)]
[turbofan] Remove unused constructor function matching from typer.
This optimization never triggers currently, and is inherently native
context dependent for no real reason (for example it will not properly
detect those constructors in the case of cross native context inlining),
plus it is slow and awkward. In case we really need this functionality
at some point, we should find a way to make it work with the builtin
function id mechanism that is already in place to match other builtins.
R=jarin@chromium.org,rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1221683006
Cr-Commit-Position: refs/heads/master@{#29365}
bmeurer [Tue, 30 Jun 2015 07:35:07 +0000 (00:35 -0700)]
[turbofan] Return constant type for functions with unknown parameter count.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1221753002
Cr-Commit-Position: refs/heads/master@{#29364}
yangguo [Tue, 30 Jun 2015 07:08:02 +0000 (00:08 -0700)]
Debugger: rename variables to avoid shadowing.
TBR=brucedawson@chromium.org
Review URL: https://codereview.chromium.org/
1212613006
Cr-Commit-Position: refs/heads/master@{#29363}
mstarzinger [Tue, 30 Jun 2015 03:23:30 +0000 (20:23 -0700)]
[turbofan] Fix exit control flow in TryCatchBuilder.
This makes sure that the exit control flow that merges the try-block
with the catch-block after a try-catch-statement creates a new merge
node in cases where it has to. Otherwise dangling phi nodes might have
the wrong number of value inputs.
R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-505354
BUG=chromium:505354
LOG=N
Review URL: https://codereview.chromium.org/
1213183003
Cr-Commit-Position: refs/heads/master@{#29362}
littledan [Tue, 30 Jun 2015 00:44:43 +0000 (17:44 -0700)]
Mark SizeOfFirstPageIsLargeEnough failing on mips64
The failure was been triggered by turning on --harmony-arrays,
maybe because code size was increased or code was added later
in the bootstrap process. Because it doesn't look like a bug
in anything guarded by --harmony-arrays directly, I'd suggest
shipping the flag and disabling the test on the architectures
where it's been observed to fail. It's already disabled on arm64
and this patch disables it on mips64 as well.
BUG=v8:4200
LOG=N
R=adamk
Review URL: https://codereview.chromium.org/
1212963004
Cr-Commit-Position: refs/heads/master@{#29361}
mbrandy [Mon, 29 Jun 2015 21:31:08 +0000 (14:31 -0700)]
PPC: [es6] Make new.target work in functions
Port
7a63bf77eb7610afdc1a968f7660781e5160ba8d
Original commit message:
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
R=arv@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1213303002
Cr-Commit-Position: refs/heads/master@{#29360}
arv [Mon, 29 Jun 2015 19:12:01 +0000 (12:12 -0700)]
[es6] Reenable new.target + Reflect.construct tests
BUG=v8:3887
LOG=N
R=caitpotter88@gmail.com, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1215973005
Cr-Commit-Position: refs/heads/master@{#29359}
arv [Mon, 29 Jun 2015 18:29:20 +0000 (11:29 -0700)]
[es6] Make new.target work in functions
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
BUG=v8:3887
LOG=N
R=adamk@chromium.org, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
1203813002
Cr-Commit-Position: refs/heads/master@{#29358}
arv [Mon, 29 Jun 2015 18:14:29 +0000 (11:14 -0700)]
[es6] Make sure we do not invoke setter when calling Promise.all
We were calling the setter for Object.prototype.promise if it existed
when calling PromiseAll.
BUG=v9:4232
LOG=N
R=rossberg@chromium.org, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1219623005
Cr-Commit-Position: refs/heads/master@{#29357}
paul.lind [Mon, 29 Jun 2015 17:25:03 +0000 (10:25 -0700)]
MIPS: skip embenchen/zlib test.
zlib is broken for mips after
35eb3a0260d349cb4201fed66ff62a438962bd47.
We're still working on a fix. Skip test for now, so the bots cycle green.
BUG=
Review URL: https://codereview.chromium.org/
1209253005
Cr-Commit-Position: refs/heads/master@{#29356}
oth [Mon, 29 Jun 2015 17:08:00 +0000 (10:08 -0700)]
Ensure mjsunit tests use dashes not underscores in flags directives.
BUG=chromium:505228
LOG=Y
Review URL: https://codereview.chromium.org/
1219723002
Cr-Commit-Position: refs/heads/master@{#29355}
yangguo [Mon, 29 Jun 2015 16:16:05 +0000 (09:16 -0700)]
Parse eagerly inside block scopes.
Only this way we can precisely determine how to allocate let variables
inside the scope.
R=rossberg@chromium.org
BUG=v8:4255
LOG=N
Review URL: https://codereview.chromium.org/
1216013002
Cr-Commit-Position: refs/heads/master@{#29354}
dusan.milosavljevic [Mon, 29 Jun 2015 16:11:07 +0000 (09:11 -0700)]
MIPS: Update cctest status file for mips[be].
Enable skipped test-api/RequestInterruptTestWith* after:
https://codereview.chromium.org/
1220443002/
TEST=
BUG=
Review URL: https://codereview.chromium.org/
1219683004
Cr-Commit-Position: refs/heads/master@{#29353}
mtrofin [Mon, 29 Jun 2015 15:56:26 +0000 (08:56 -0700)]
[turbofan] Greedy allocator refactoring.
Separated core greedy allocator concepts, exposing the APIs we would want to continue working with. In particular, this change completely reworks CoalescedLiveRanges to reflect the fact that we expect more than one possible conflict, scrapping the initial design of the structure. Since this is a critical part of the design, this change may be thought of as a full rewrite of the algorithm.
Reduced all heuristics to just 2 essential ones: split "somewhere", which we'll still need when all other heuristics fail; and spill.
Introduced a simple primitive for splitting - at GapPosition::START. The goal is to use such primitives to quickly and reliably author heuristics.
I expected this primitive to "just work" for any arbitrary instruction index within a live range - e.g. its middle. That's not the case, it seems to upset execution in certain scenarios. Restricting to either before/after use positions seems to work. I'm still investigating what the source of failures is in the case of "arbitrary instruction in the range" case.
I intended to document the rationale and prove the soundness of always using START for splits, but I will postpone to after this last remaining issue is resolved.
Review URL: https://codereview.chromium.org/
1205173002
Cr-Commit-Position: refs/heads/master@{#29352}
binji [Mon, 29 Jun 2015 15:53:08 +0000 (08:53 -0700)]
Fix cluster-fuzz found regression in d8 Workers.
This one occurs when Function.prototype.toString is overridden to return a
non-string.
BUG=chromium:504729
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1214803004
Cr-Commit-Position: refs/heads/master@{#29351}
binji [Mon, 29 Jun 2015 15:48:24 +0000 (08:48 -0700)]
Fix cluster-fuzz found regression in d8 Workers.
Dumb typo introduced in refs/heads/master@{#29306}. I thought I was turning on
report_exceptions in Shell::ExecuteString, but instead I turned on print_result
(which assumes an interactive debugger and a HandleScope for the
utility_context_).
BUG=chromium:504727,chromium:504728
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1219563002
Cr-Commit-Position: refs/heads/master@{#29350}
machenbach [Mon, 29 Jun 2015 15:07:15 +0000 (08:07 -0700)]
[android] Remove legacy architecture configs from perf runner.
The android_* configs were never real v8 target
architectures, only make targets. This doesn't make sense
with ninja anymore.
BUG=chromium:502176
LOG=n
NOTRY=true
Review URL: https://codereview.chromium.org/
1220743002
Cr-Commit-Position: refs/heads/master@{#29349}
ishell [Mon, 29 Jun 2015 14:29:42 +0000 (07:29 -0700)]
Avoid allocations during ArrayBuffer initialization.
BUG=chromium:505367
LOG=N
Review URL: https://codereview.chromium.org/
1215003002
Cr-Commit-Position: refs/heads/master@{#29348}
Djordje.Pesic [Mon, 29 Jun 2015 13:53:59 +0000 (06:53 -0700)]
Assertion failure when using --log-regexp
RegExpCompileEvent acquieres mutex from Log class during MessageBuilder creation. LogRegExpSource, called from RegExpCompileEvent creates another MessageBuilder object which also acquires the same mutex. This mutex is not recursive, so during second acquirement, assertion fail is happening. Solution: LogRegExpSource should use the same MessageBuilder object as RegExpCompileEvent.
Review URL: https://codereview.chromium.org/
1207433002
Cr-Commit-Position: refs/heads/master@{#29347}
oth [Mon, 29 Jun 2015 13:40:42 +0000 (06:40 -0700)]
Fix flag convention in handle count tests and comment.
BUG=505228
LOG=Y
Review URL: https://codereview.chromium.org/
1210153003
Cr-Commit-Position: refs/heads/master@{#29346}
machenbach [Mon, 29 Jun 2015 13:06:25 +0000 (06:06 -0700)]
Revert of Use third_party clang on Mac. (patchset #4 id:60001 of https://codereview.chromium.org/
1200833013/)
Reason for revert:
[Sheriff] Breaks mac on the main waterfall (though not on the tryserver):
http://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/3925
Original issue's description:
> Use third_party clang on Mac.
>
> BUG=
>
> Committed: https://crrev.com/
57b20413294940476ab2b2e71ed0802aaf8c223f
> Cr-Commit-Position: refs/heads/master@{#29343}
TBR=danno@chromium.org,jkummerow@chromium.org,paul.lind@imgtec.com,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1217823003
Cr-Commit-Position: refs/heads/master@{#29345}
Michael Achenbach [Mon, 29 Jun 2015 12:53:51 +0000 (14:53 +0200)]
Whitespace change to test android ninja/goma switch.
Cr-Commit-Position: refs/heads/master@{#29344}
balazs.kilvady [Mon, 29 Jun 2015 12:27:53 +0000 (05:27 -0700)]
Use third_party clang on Mac.
BUG=
Review URL: https://codereview.chromium.org/
1200833013
Cr-Commit-Position: refs/heads/master@{#29343}
bmeurer [Mon, 29 Jun 2015 11:47:50 +0000 (04:47 -0700)]
Using "defined" in macro causes undefined behavior.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1212163003
Cr-Commit-Position: refs/heads/master@{#29342}
machenbach [Mon, 29 Jun 2015 10:47:20 +0000 (03:47 -0700)]
[android] Configure building android with ninja and clang.
Make clang dir absolute to avoid differences between ninja
and make gyp generator.
BUG=chromium:502176
LOG=n
Review URL: https://codereview.chromium.org/
1217783002
Cr-Commit-Position: refs/heads/master@{#29341}
bmeurer [Mon, 29 Jun 2015 08:08:17 +0000 (01:08 -0700)]
[turbofan] Add typing rules for the typeof operator.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1218773002
Cr-Commit-Position: refs/heads/master@{#29340}
ben [Mon, 29 Jun 2015 07:36:48 +0000 (00:36 -0700)]
Meaningful name for builtins in JitCodeEvent API.
Report builtins by name (e.g. "Builtin:ArgumentsAdaptorTrampoline")
instead of labeling everything "Builtin:A builtin from the snapshot".
BUG=
Review URL: https://codereview.chromium.org/
1216833002
Cr-Commit-Position: refs/heads/master@{#29339}
machenbach [Sat, 27 Jun 2015 19:39:42 +0000 (12:39 -0700)]
Fix gn build deps.
Fix c/p error from https://codereview.chromium.org/
1217483002/
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/
1214013002
Cr-Commit-Position: refs/heads/master@{#29338}
dslomov [Fri, 26 Jun 2015 21:39:43 +0000 (14:39 -0700)]
[destructuring] Re-index materialized literals in arrow function parameters.
R=wingo@igalia.com
BUG=v8:811
LOG=N
Review URL: https://codereview.chromium.org/
1212473002
Cr-Commit-Position: refs/heads/master@{#29337}
arv [Fri, 26 Jun 2015 21:16:42 +0000 (14:16 -0700)]
[es6] Remove harmony-classes flag
Move class tests to es6 directory
BUG=v8:3330
LOG=N
R=adamk
Review URL: https://codereview.chromium.org/
1213813003
Cr-Commit-Position: refs/heads/master@{#29336}
mbrandy [Fri, 26 Jun 2015 19:50:52 +0000 (12:50 -0700)]
PPC: VectorICs: Lithium support for vector-based stores.
Port
8a3cf4ecef1fce76137270845604292bdbdadcd4
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1212613003
Cr-Commit-Position: refs/heads/master@{#29335}
arv [Fri, 26 Jun 2015 19:49:43 +0000 (12:49 -0700)]
[es6] Remove harmony-object-literal flag
And move tests to es6 directory
BUG=v8:3516
LOG=N
R=adamk@chromium.org, rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1218473003
Cr-Commit-Position: refs/heads/master@{#29334}
mbrandy [Fri, 26 Jun 2015 19:48:32 +0000 (12:48 -0700)]
PPC: [turbofan] Canonicalize return sequence for JSFunctions.
Port
2b9112a578f66fc976557aededf3e203f48c395e
Original commit message:
This optimization is already implemented in fullcodegen, and
basically makes sure that we do not unecessarily blow up the
code with duplicated return sequences everywhere.
R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1218493003
Cr-Commit-Position: refs/heads/master@{#29333}
Erik Arvidsson [Fri, 26 Jun 2015 19:33:11 +0000 (15:33 -0400)]
test262-es6: Add entry for asi test
The test language/asi/S7.9_A5.7_T1 is failing intermittently.
BUG=v8:4253
LOG=N
TBR=adamk
Review URL: https://codereview.chromium.org/
1215813002.
Cr-Commit-Position: refs/heads/master@{#29332}
dusan.milosavljevic [Fri, 26 Jun 2015 16:54:01 +0000 (09:54 -0700)]
MIPS: Fix unpredictable random failures after direct api function call.
The use of jalr ra is unpredictable if instruction in branch delay slot
is in next page.
This finally fixes random failures in JS debugger and InteruptRequest tests.
TEST=mjsunit/debug-*,
cctest/test-api/RequestInterruptTestWithNativeAccessor
BUG=
Review URL: https://codereview.chromium.org/
1220443002
Cr-Commit-Position: refs/heads/master@{#29331}
erikcorry [Fri, 26 Jun 2015 14:58:51 +0000 (07:58 -0700)]
Put getter functions on Script line-endings objects
This is a step towards having Blink no longer look directly at the
line endings array. That prevented https://codereview.chromium.org/
1137683003/
from landing. Next step, after the roll, will be using these
functions in Blink.
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1213783002
Cr-Commit-Position: refs/heads/master@{#29330}
arv [Fri, 26 Jun 2015 14:39:24 +0000 (07:39 -0700)]
Classify all test262-es6 failures
File bugs for all failing tests in test262-es6.
There are still some old "needs investigation" failures that I didn't
investigate.
BUG=N
LOG=N
R=littledan@chromium.org, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1209163002
Cr-Commit-Position: refs/heads/master@{#29329}
machenbach [Fri, 26 Jun 2015 14:24:42 +0000 (07:24 -0700)]
Fix missing source dependencies.
BUG=
Review URL: https://codereview.chromium.org/
1217483002
Cr-Commit-Position: refs/heads/master@{#29328}
yangguo [Fri, 26 Jun 2015 13:53:26 +0000 (06:53 -0700)]
Debugger: use list to find shared function info in a script.
Now that we keep tabs on shared function infos from a script, we can speed up finding shared function infos for debugging. However, in case we have to compile a function that cannot be lazily compiled without context, we fall back to the slow heap iteration.
R=mstarzinger@chromium.org
BUG=v8:4132,v8:4052
LOG=N
Committed: https://crrev.com/
cfe89a71a332ef9ed481c8210bc3ad6d2822034b
Cr-Commit-Position: refs/heads/master@{#29296}
Review URL: https://codereview.chromium.org/
1206573004
Cr-Commit-Position: refs/heads/master@{#29327}
yangguo [Fri, 26 Jun 2015 13:16:57 +0000 (06:16 -0700)]
Mark function info as compiled after EnsureDeoptimizationSupport.
Note that prior to having canonical shared function infos, this has
been a source of duplicate shared function infos.
R=bmeurer@chromium.org
BUG=chromium:504787
LOG=N
Review URL: https://codereview.chromium.org/
1209383002
Cr-Commit-Position: refs/heads/master@{#29326}
vogelheim [Fri, 26 Jun 2015 12:45:23 +0000 (05:45 -0700)]
Default-enable external startup snapshot for more types of builds.
BUG=
Review URL: https://codereview.chromium.org/
1205843005
Cr-Commit-Position: refs/heads/master@{#29325}
bmeurer [Fri, 26 Jun 2015 12:08:11 +0000 (05:08 -0700)]
[turbofan] Also update the BranchHint when merging a BooleanNot.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1218443002
Cr-Commit-Position: refs/heads/master@{#29324}
machenbach [Fri, 26 Jun 2015 12:03:54 +0000 (05:03 -0700)]
Reland [android] Migrate more configs to gyp.
This reverts commit
e93e4dad632a019c6a863c7dd43491b607d6d096.
BUG=chromium:502176
LOG=n
NOTRY=true
TBR=ulan@chromium.org, jochen@chromium.org
Review URL: https://codereview.chromium.org/
1213803002
Cr-Commit-Position: refs/heads/master@{#29323}
oth [Fri, 26 Jun 2015 10:58:09 +0000 (03:58 -0700)]
Reland 'Additional HandleScopes to limit Handle consumption.'
v8 builds with --no-snap were hitting handle limits compiling natives for handle count unit tests that run with --check_handle_count. Patch now has higher handle limits (~4k more than required for failing natives compilation).
Original issue: https://codereview.chromium.org/
1185633002/
Original issue's description:
> Additional HandleScopes to limit Handle consumption.
>
> erikcorry@chromium.org suggested digging into v8 handle usage. Found potential scopes in ast.cc and runtime-literals.cc and added tests.
>
> The runtime-literals.cc change reduces peak handles in imaging-darkroom.js from 1,282,610 to 428,218. The ast.cc change reduces the peak handles in string-t
agcloud.js from 80,738 to 8,176.
>
> No significant handle count issues found with major websites, but substantial savings on some benchmarks and demos:
>
> Kraken's imaging-darkroom.js down from 1,282,610 to 428,218 due to runtime-literals.cc scope.
> SunSpider's string-tagcloud.js down from 80,738 to 8.176 due to ast.cc
>
> http://www.flohofwoe.net/demos/dragons_asmjs.html (738,906 -> 478,296)
> http://www.flohofwoe.net/demos/instancing_asmjs.html (737,884 -> 477,274)
> https://dl.dropboxusercontent.com/u/
16662598/Ports/DOSBox-web/doom.html?engine=dosbox-growth.js (1,724,114 -> 1,087,408)
> https://kripken.github.io/ammo.js/examples/new/ammo.html (175,784 -> 142,058)
>
> BUG=
>
> Committed: https://crrev.com/
3a4c7538839186aa38910c66c986abb563f4ccd2
> Cr-Commit-Position: refs/heads/master@{#29155}
BUG=
Review URL: https://codereview.chromium.org/
1192743005
Cr-Commit-Position: refs/heads/master@{#29322}
mstarzinger [Fri, 26 Jun 2015 10:56:22 +0000 (03:56 -0700)]
[turbofan] Enable sharing of context-independent code.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1215643002
Cr-Commit-Position: refs/heads/master@{#29321}
hpayer [Fri, 26 Jun 2015 10:52:46 +0000 (03:52 -0700)]
Revert of Re-land new insertion write barrier. (patchset #1 id:1 of https://codereview.chromium.org/
1211513002/)
Reason for revert:
Still crashing in the wild.
Original issue's description:
> Re-land new insertion write barrier.
>
> BUG=
>
> Committed: https://crrev.com/
6e6af7e7c70050cdd5ce56cdbaee3b6e8a7caa89
> Cr-Commit-Position: refs/heads/master@{#29258}
TBR=ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/
1217443002
Cr-Commit-Position: refs/heads/master@{#29320}
machenbach [Fri, 26 Jun 2015 10:39:09 +0000 (03:39 -0700)]
Revert of Reland [android] Migrate more configs to gyp. (patchset #2 id:20001 of https://codereview.chromium.org/
1210393003/)
Reason for revert:
[Sheriff] Fails runhooks.
Original issue's description:
> Reland [android] Migrate more configs to gyp.
>
> This reverts commit
3e8892b589f16454d4f592e2ed3f6d4ddf0a0bc6.
>
> BUG=chromium:502176
> LOG=n
> NOTRY=true
> TBR=ulan@chromium.org, jochen@chromium.org
>
> Committed: https://crrev.com/
c0d70e43c4cbe2a09c8f1bd55fe2be03cd9ba041
> Cr-Commit-Position: refs/heads/master@{#29317}
TBR=ulan@chromium.org,jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:502176
Review URL: https://codereview.chromium.org/
1215593004
Cr-Commit-Position: refs/heads/master@{#29319}
machenbach [Fri, 26 Jun 2015 10:35:12 +0000 (03:35 -0700)]
[tools] Add a tool to show potentially missing source deps.
NOTRY=true
Review URL: https://codereview.chromium.org/
1208573002
Cr-Commit-Position: refs/heads/master@{#29318}
machenbach [Fri, 26 Jun 2015 10:33:23 +0000 (03:33 -0700)]
Reland [android] Migrate more configs to gyp.
This reverts commit
3e8892b589f16454d4f592e2ed3f6d4ddf0a0bc6.
BUG=chromium:502176
LOG=n
NOTRY=true
TBR=ulan@chromium.org, jochen@chromium.org
Review URL: https://codereview.chromium.org/
1210393003
Cr-Commit-Position: refs/heads/master@{#29317}
bmeurer [Fri, 26 Jun 2015 10:02:16 +0000 (03:02 -0700)]
Revert of [android] Migrate more configs to gyp. (patchset #4 id:60001 of https://codereview.chromium.org/
1207693004/)
Reason for revert:
Breaks arm64 bots.
Original issue's description:
> [android] Migrate more configs to gyp.
>
> BUG=chromium:502176
> LOG=n
>
> Committed: https://crrev.com/
174869573e42c999da1489c264b9c4602b98ba31
> Cr-Commit-Position: refs/heads/master@{#29314}
TBR=jochen@chromium.org,ulan@chromium.org,dusan.milosavljevic@imgtec.com,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:502176
Review URL: https://codereview.chromium.org/
1211383002
Cr-Commit-Position: refs/heads/master@{#29316}
bmeurer [Fri, 26 Jun 2015 09:34:32 +0000 (02:34 -0700)]
[turbofan] Canonicalize return sequence for JSFunctions.
This optimization is already implemented in fullcodegen, and
basically makes sure that we do not unecessarily blow up the
code with duplicated return sequences everywhere.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
1211373002
Cr-Commit-Position: refs/heads/master@{#29315}
machenbach [Fri, 26 Jun 2015 09:19:11 +0000 (02:19 -0700)]
[android] Migrate more configs to gyp.
BUG=chromium:502176
LOG=n
Review URL: https://codereview.chromium.org/
1207693004
Cr-Commit-Position: refs/heads/master@{#29314}
mstarzinger [Fri, 26 Jun 2015 09:07:30 +0000 (02:07 -0700)]
[turbofan] Implement sharing of context-independent code.
This allows context-independent code generated by TurboFan to be cached
in the optimized code map and reused across native contexts. Note that
currently this cache is still flushed at GC time.
R=bmeurer@chromium.org,mvstanton@chromium.org
TEST=cctest/test-compiler/OptimizedCodeSharing
Review URL: https://codereview.chromium.org/
1208013002
Cr-Commit-Position: refs/heads/master@{#29313}
machenbach [Fri, 26 Jun 2015 08:22:00 +0000 (01:22 -0700)]
Revert of Debugger: use list to find shared function info in a script. (patchset #2 id:20001 of https://codereview.chromium.org/
1206573004/)
Reason for revert:
[Sheriff] Breaks layout tests:
http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/682
Original issue's description:
> Debugger: use list to find shared function info in a script.
>
> Now that we keep tabs on shared function infos from a script, we can speed up finding shared function infos for debugging. However, in case we have to compile a function that cannot be lazily compiled without context, we fall back to the slow heap iteration.
>
> R=mstarzinger@chromium.org
> BUG=v8:4132,v8:4052
> LOG=N
>
> Committed: https://crrev.com/
cfe89a71a332ef9ed481c8210bc3ad6d2822034b
> Cr-Commit-Position: refs/heads/master@{#29296}
TBR=mstarzinger@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4132,v8:4052
Review URL: https://codereview.chromium.org/
1210393002
Cr-Commit-Position: refs/heads/master@{#29312}
bmeurer [Fri, 26 Jun 2015 08:20:53 +0000 (01:20 -0700)]
[turbofan] Add support for pushing returns into merges.
This will enable tail call optimization even across inlining. Plus it
might enable some other interesting optimizations as well. In order to
avoid blowing up the generated code, we can still canonicalize the
epilogue in the CodeGenerator, similar to what fullcodegen does.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1215623002
Cr-Commit-Position: refs/heads/master@{#29311}
mvstanton [Fri, 26 Jun 2015 07:53:21 +0000 (00:53 -0700)]
VectorICs: Lithium support for vector-based stores.
BUG=
Review URL: https://codereview.chromium.org/
1209903003
Cr-Commit-Position: refs/heads/master@{#29310}
bmeurer [Fri, 26 Jun 2015 05:56:00 +0000 (22:56 -0700)]
[turbofan] Use proper eager deopts for %_ThrowNotDateError().
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1210863002
Cr-Commit-Position: refs/heads/master@{#29309}
yangguo [Thu, 25 Jun 2015 19:04:21 +0000 (12:04 -0700)]
Serializer: commit new internalized strings after deserialization.
Reserving space for deserialization can cause GC, which
can evict entries from the string table. Having more deleted
entries now, StringTable::EnsureCapacity could cause a GC
later during deserialization even when we actually still
have enough capacity.
Instead, we now keep new internalized strings in a separate list
and commit them to the string table at the end.
R=ulan@chromium.org
BUG=chromium:502085
LOG=N
Review URL: https://codereview.chromium.org/
1204863006
Cr-Commit-Position: refs/heads/master@{#29308}
mbrandy [Thu, 25 Jun 2015 19:03:11 +0000 (12:03 -0700)]
PPC64: Fix "[ic] Record call counts for monomorphic calls made with an IC."
StoreP to a tagged object pointer requires a scratch register.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1207323002
Cr-Commit-Position: refs/heads/master@{#29307}
binji [Thu, 25 Jun 2015 18:01:11 +0000 (11:01 -0700)]
Fix cluster-fuzz regression when getting message from Worker
The issue is that Worker.prototype.terminate was deleting the C++ Worker
object, and then Worker.prototype.getMessage was trying to read messages from
the queue.
The simplest solution is to keep workers in a zombie state when they have been
terminated. They won't be reaped until Shell::CleanupWorkers is called.
I've also fixed some threading issues with Workers:
* Workers can be created by another Worker, so the Shell::workers_ variable
must be protected by a mutex.
* An individual Worker can typically only be accessed by the isolate that
created it, but the main thread can always terminate it, so the Worker::state_
must be accessed in a thread-safe way.
BUG=chromium:504136
R=jochen@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1208733002
Cr-Commit-Position: refs/heads/master@{#29306}
balazs.kilvady [Thu, 25 Jun 2015 17:59:43 +0000 (10:59 -0700)]
MIPS: [turbofan] Fix implementation of Float64Min.
Port
d783b763629526a1ec57a9f14caa61d0166efac7
Original commit message:
ARM64's `fmin` and `fmax` instructions don't have the same behaviour as
TurboFan's Float(32|64)(Min|Max) functions.
BUG=4206
LOG=N
Review URL: https://codereview.chromium.org/
1204903004
Cr-Commit-Position: refs/heads/master@{#29305}
mbrandy [Thu, 25 Jun 2015 17:35:15 +0000 (10:35 -0700)]
PPC: [turbofan] Add basic support for calling to (a subset of) C functions.
Port
a58ba8d80179bf5b6b7245590c82e47fda8c8a5e
Original commit message:
This introduces some initial building blocks for calling out to
C/C++ functions directly from TurboFan generated code objects.
R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1206343002
Cr-Commit-Position: refs/heads/master@{#29304}
mbrandy [Thu, 25 Jun 2015 17:32:46 +0000 (10:32 -0700)]
PPC: [ic] Record call counts for monomorphic calls made with an IC.
Port
c1a4f7477f03ebb0c6889bbf8ea6a4c928e0d413
Original commit message:
The idea is that TurboFan can use this information for more intelligent
inlining.
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1208093002
Cr-Commit-Position: refs/heads/master@{#29303}
mbrandy [Thu, 25 Jun 2015 17:31:37 +0000 (10:31 -0700)]
PPC: Vector ICs: Like megamorphic keyed koads, use a dummy vector for stores
Port
9e7af9efc5857b3c7e23a77d257f3dfbea597753
Original commit message:
It's useful for the megamorphic keyed store case to not require a
vector and slot as input. Analogous to the load case, we have a dummy
one-ic-slot vector to aid. Since the only kind of MISS is for
megamorphic cache stub failures, we don't need the real vector.
The reason is that megamorphic cache stub failures don't result in any
change to the type feedback vector state.
R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1212493002
Cr-Commit-Position: refs/heads/master@{#29302}
mbrandy [Thu, 25 Jun 2015 17:03:02 +0000 (10:03 -0700)]
PPC: Fix "Unify the stack layout for construct frames"
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1210083002
Cr-Commit-Position: refs/heads/master@{#29301}
mbrandy [Thu, 25 Jun 2015 16:44:20 +0000 (09:44 -0700)]
PPC: Fix "Fix receiver when calling eval() bound by with scope"
R=wingo@igalia.com, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1209703002
Cr-Commit-Position: refs/heads/master@{#29300}
wingo [Thu, 25 Jun 2015 16:17:06 +0000 (09:17 -0700)]
Better error message for eval=>42 in strict mode
BUG=v8:4213
R=arv@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
1210003003
Cr-Commit-Position: refs/heads/master@{#29299}
verwaest [Thu, 25 Jun 2015 15:04:46 +0000 (08:04 -0700)]
Back off normalizing on set length in sync with adding a property
BUG=
Review URL: https://codereview.chromium.org/
1211833002
Cr-Commit-Position: refs/heads/master@{#29298}
verwaest [Thu, 25 Jun 2015 14:43:28 +0000 (07:43 -0700)]
Only try to delete dictionary elements if the length is actually reduced
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1209983002
Cr-Commit-Position: refs/heads/master@{#29297}
yangguo [Thu, 25 Jun 2015 14:27:36 +0000 (07:27 -0700)]
Debugger: use list to find shared function info in a script.
Now that we keep tabs on shared function infos from a script, we can speed up finding shared function infos for debugging. However, in case we have to compile a function that cannot be lazily compiled without context, we fall back to the slow heap iteration.
R=mstarzinger@chromium.org
BUG=v8:4132,v8:4052
LOG=N
Review URL: https://codereview.chromium.org/
1206573004
Cr-Commit-Position: refs/heads/master@{#29296}
verwaest [Thu, 25 Jun 2015 14:17:10 +0000 (07:17 -0700)]
Move Add to the elements accessor for everything but dictionary-arguments
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1205913002
Cr-Commit-Position: refs/heads/master@{#29295}
vogelheim [Thu, 25 Jun 2015 14:03:41 +0000 (07:03 -0700)]
Remove obsolete options in ScriptCompiler::CompileOptions.
This is a follow-on to https://code.google.com/p/v8/source/detail?r=22431
This will remove the compatibility logic, so that the API as described
in r22431 is the only API.
I'll let this CL will sit around for a while to give embedders a chance
to update their code.
R=yangguo@chromium.org, ulan@chromium.org
BUG=chromium:399580
LOG=Y
Review URL: https://codereview.chromium.org/
392263002
Cr-Commit-Position: refs/heads/master@{#29294}
wingo [Thu, 25 Jun 2015 13:46:31 +0000 (06:46 -0700)]
Reapply "Fix receiver when calling eval() bound by with scope"
Originally applied in https://codereview.chromium.org/
1202963005
BUG=v8:4214
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
LOG=N
R=arv@chromium.org, mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
1208873002
Cr-Commit-Position: refs/heads/master@{#29293}
arv [Thu, 25 Jun 2015 12:52:23 +0000 (05:52 -0700)]
Unify the stack layout for construct frames
The stack layout was different for different ports.
BUG=v8:3887
LOG=N
R=dslomov@chromium.org, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1203103003
Cr-Commit-Position: refs/heads/master@{#29292}
yangguo [Thu, 25 Jun 2015 12:19:55 +0000 (05:19 -0700)]
Reland 2 "Keep a canonical list of shared function infos."
BUG=v8:4132
LOG=N
Review URL: https://codereview.chromium.org/
1211803002
Cr-Commit-Position: refs/heads/master@{#29291}
erikcorry [Thu, 25 Jun 2015 11:42:03 +0000 (04:42 -0700)]
Reland Extend big-disjunction optimization to case-independent regexps
Previous code review https://codereview.chromium.org/
1182783009/
R=yangguo@chromium.org
BUG=chromium:482998
LOG=n
Review URL: https://codereview.chromium.org/
1204123003
Cr-Commit-Position: refs/heads/master@{#29290}
verwaest [Thu, 25 Jun 2015 11:25:59 +0000 (04:25 -0700)]
Move reconfiguration into the elements accessor
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1207613005
Cr-Commit-Position: refs/heads/master@{#29289}
bmeurer [Thu, 25 Jun 2015 11:06:58 +0000 (04:06 -0700)]
[turbofan] Optimize BooleanNot conditions to Branch nodes.
Also remove the weird work-around for this missing optimization in
CHECK_DATE in macros.py.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1205353002
Cr-Commit-Position: refs/heads/master@{#29288}
verwaest [Thu, 25 Jun 2015 10:48:51 +0000 (03:48 -0700)]
Let AddDictionaryElement / AddFastElement purely add, move transition heuristics to AddDataElement
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1194023004
Cr-Commit-Position: refs/heads/master@{#29287}
yangguo [Thu, 25 Jun 2015 10:43:32 +0000 (03:43 -0700)]
Debugger: remove bogus assertion in BreakLocation constructor.
Currently DebugInfo objects can be created independently from whether
the debugger is active. When tearing down the isolate, we would go
through DebugInfo objects and iterate through break locations,
causing this assertion to fail.
R=ulan@chromium.org
BUG=v8:4241
LOG=N
Review URL: https://codereview.chromium.org/
1210813002
Cr-Commit-Position: refs/heads/master@{#29286}
yangguo [Thu, 25 Jun 2015 10:34:54 +0000 (03:34 -0700)]
Revert of Reland "Keep a canonical list of shared function infos." (patchset #3 id:40001 of https://codereview.chromium.org/
1211453002/)
Reason for revert:
proxies test failing https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/903/steps/Mjsunit/logs/proxies
Original issue's description:
> Reland "Keep a canonical list of shared function infos."
>
> This reverts commit
3164aa7483cb476da84895a3c9810015758fccf9.
>
> Committed: https://crrev.com/
cacb646d80daa429f6915824a741f595db7d5044
> Cr-Commit-Position: refs/heads/master@{#29282}
TBR=adamk@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1206263002
Cr-Commit-Position: refs/heads/master@{#29285}
mstarzinger [Thu, 25 Jun 2015 09:44:58 +0000 (02:44 -0700)]
Remove overzealous checking of --cache-optimized-code flag.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1206803003
Cr-Commit-Position: refs/heads/master@{#29284}
Benedikt Meurer [Thu, 25 Jun 2015 09:22:08 +0000 (11:22 +0200)]
[turbofan] Properly type %_IsDate intrinsic.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1208003002.
Cr-Commit-Position: refs/heads/master@{#29283}
yangguo [Thu, 25 Jun 2015 09:09:28 +0000 (02:09 -0700)]
Reland "Keep a canonical list of shared function infos."
This reverts commit
3164aa7483cb476da84895a3c9810015758fccf9.
Review URL: https://codereview.chromium.org/
1211453002
Cr-Commit-Position: refs/heads/master@{#29282}
Michael Stanton [Thu, 25 Jun 2015 08:43:28 +0000 (10:43 +0200)]
[ic] Record call counts for monomorphic calls made with an IC.
The idea is that TurboFan can use this information for more intelligent
inlining.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1201193003
Cr-Commit-Position: refs/heads/master@{#29281}
Michael Stanton [Thu, 25 Jun 2015 08:35:56 +0000 (10:35 +0200)]
Vector ICs: Like megamorphic keyed koads, use a dummy vector for stores
It's useful for the megamorphic keyed store case to not require a
vector and slot as input. Analogous to the load case, we have a dummy
one-ic-slot vector to aid. Since the only kind of MISS is for
megamorphic cache stub failures, we don't need the real vector.
The reason is that megamorphic cache stub failures don't result in any
change to the type feedback vector state.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1210583002
Cr-Commit-Position: refs/heads/master@{#29280}
Benedikt Meurer [Thu, 25 Jun 2015 08:32:06 +0000 (10:32 +0200)]
[turbofan] Add basic support for calling to (a subset of) C functions.
This introduces some initial building blocks for calling out to
C/C++ functions directly from TurboFan generated code objects.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1205023002.
Cr-Commit-Position: refs/heads/master@{#29279}
Michael Starzinger [Thu, 25 Jun 2015 08:28:19 +0000 (10:28 +0200)]
Simplify interface to optimized code map lookup.
This is one step torwards extracting an OptimizedCodeMap out from the
SharedFunctionInfo in order to have a more flexible implementation.
R=bmeurer@chromium.org, jarin@chromium.org
Review URL: https://codereview.chromium.org/
1205783003.
Cr-Commit-Position: refs/heads/master@{#29278}
bmeurer [Thu, 25 Jun 2015 04:47:06 +0000 (21:47 -0700)]
[turbofan] Revive the useful parts of the SimplifiedOperatorReducer.
This partially reverts https://codereview.chromium.org/
1162563002
because we might actually be able to optimize certain combinations
now due to dead code elimination.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1202263006
Cr-Commit-Position: refs/heads/master@{#29277}
bbudge [Thu, 25 Jun 2015 04:32:07 +0000 (21:32 -0700)]
Make helper functions compatible with larger ToBooleanStub types.
I missed some functions that need to change.
LOG=N
BUG=v8:4124
Review URL: https://codereview.chromium.org/
1199413009
Cr-Commit-Position: refs/heads/master@{#29276}
mstarzinger [Thu, 25 Jun 2015 04:11:54 +0000 (21:11 -0700)]
Make sure bound functions never make it into optimized code map.
This is one step torwards extracting an OptimizedCodeMap out from the
SharedFunctionInfo in order to have a more flexible implementation.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1210523002
Cr-Commit-Position: refs/heads/master@{#29275}
v8-autoroll [Thu, 25 Jun 2015 03:28:25 +0000 (20:28 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
c3f79166089e5360c09e3053fce50e6e296c3204
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1206173002
Cr-Commit-Position: refs/heads/master@{#29274}
arv [Thu, 25 Jun 2015 00:04:25 +0000 (17:04 -0700)]
JSON.stringify should handle the replacer before the space
BUG=v8:4227
LOG=N
R=adamk
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/
1200373003
Cr-Commit-Position: refs/heads/master@{#29273}
arv [Wed, 24 Jun 2015 22:30:37 +0000 (15:30 -0700)]
Fix evaluation order of Object.prototype.hasOwnProperty
We need to do the ToName before the ToObject.
BUG=v8:4229
LOG=N
R=adamk
Review URL: https://codereview.chromium.org/
1211663002
Cr-Commit-Position: refs/heads/master@{#29272}
arv [Wed, 24 Jun 2015 22:29:30 +0000 (15:29 -0700)]
jsmin.py: Fix issue with escaping of back ticks
The escaping of back ticks in template strings was incorrect
BUG=v8:4240
LOG=N
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1209713003
Cr-Commit-Position: refs/heads/master@{#29271}