v8-autoroll [Thu, 19 Mar 2015 05:45:14 +0000 (22:45 -0700)]
Update V8 DEPS.
Rolling v8/buildtools to
3b302fef93f7cc58d9b8168466905237484b2772
Rolling v8/tools/clang to
14dcc71cf53d4d97d0e6e8745089ff81de7b8a94
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1019133003
Cr-Commit-Position: refs/heads/master@{#27284}
balazs.kilvady [Wed, 18 Mar 2015 21:41:30 +0000 (14:41 -0700)]
MIPS: Serializer: serialize internal references via object visitor.
Port
7c149afb6c875b1c53723384459dc14a0e961927
BUG=
Review URL: https://codereview.chromium.org/
1019083002
Cr-Commit-Position: refs/heads/master@{#27283}
paul.lind [Wed, 18 Mar 2015 21:40:22 +0000 (14:40 -0700)]
MIPS: Load from PropertyCells using PropertyCell::kValueOffset rather than Cell::kValueOffset
Port
dda2bd6f4f952c604ab836f04052684722480849
BUG=
Review URL: https://codereview.chromium.org/
1015613003
Cr-Commit-Position: refs/heads/master@{#27282}
balazs.kilvady [Wed, 18 Mar 2015 21:39:14 +0000 (14:39 -0700)]
MIPS: Disinherit PropertyCell from Cell.
Port
8c0d289772649217a55011133c0e481741618330
BUG=
Review URL: https://codereview.chromium.org/
1017103003
Cr-Commit-Position: refs/heads/master@{#27281}
verwaest [Wed, 18 Mar 2015 19:53:37 +0000 (12:53 -0700)]
Load from PropertyCells using PropertyCell::kValueOffset rather than Cell::kValueOffset
BUG=
Review URL: https://codereview.chromium.org/
1019563002
Cr-Commit-Position: refs/heads/master@{#27280}
ulan [Wed, 18 Mar 2015 19:52:29 +0000 (12:52 -0700)]
Skip flaky mjsunit/debug-references in gc-stress.
BUG=v8:3969
LOG=NO
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1016063002
Cr-Commit-Position: refs/heads/master@{#27279}
svenpanne [Wed, 18 Mar 2015 16:12:03 +0000 (09:12 -0700)]
Add IBM people to PPC owners.
Review URL: https://codereview.chromium.org/
1014063002
Cr-Commit-Position: refs/heads/master@{#27278}
balazs.kilvady [Wed, 18 Mar 2015 16:05:20 +0000 (09:05 -0700)]
MIPS: Remove PropertyCell space.
Port
16c8485a35efc36cf6ccd15185282d65412e1502
Original commit message:
Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.
BUG=
Review URL: https://codereview.chromium.org/
1014293002
Cr-Commit-Position: refs/heads/master@{#27277}
mstarzinger [Wed, 18 Mar 2015 15:59:37 +0000 (08:59 -0700)]
Cleanup and unify Isolate::ReportPendingMessages.
Note that this is a pure cleanup CL and shouldn't have an observable
impact on the functional behavior of message reporting.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
999923004
Cr-Commit-Position: refs/heads/master@{#27276}
yangguo [Wed, 18 Mar 2015 13:38:32 +0000 (06:38 -0700)]
Serializer: serialize internal references via object visitor.
Review URL: https://codereview.chromium.org/
1005183006
Cr-Commit-Position: refs/heads/master@{#27275}
verwaest [Wed, 18 Mar 2015 12:54:02 +0000 (05:54 -0700)]
Disinherit PropertyCell from Cell
BUG=
Review URL: https://codereview.chromium.org/
1015983003
Cr-Commit-Position: refs/heads/master@{#27274}
balazs.kilvady [Wed, 18 Mar 2015 12:52:55 +0000 (05:52 -0700)]
MIPS: Remove kind field from StackHandler.
Port
15f8213809a57c2a163b500a732c9ffe5160a41a
Original commit message:
This relands commit
96f79568a926966ebcf0685bf9adc947f4e1fbff.
This makes the Isolate::Throw logic not depend on a prediction of
whether an exception is caught or uncaught. Such a prediction is
inherently undecidable because a finally block can decide between
consuming or re-throwing an exception depending on arbitray control
flow.
There still is a conservative prediction mechanism in place that
components like the debugger or tracing can use for reporting.
With this change we can get rid of the StackHandler::kind field, a
pre-requisite to do table-based lookups of exception handlers.
BUG=
Review URL: https://codereview.chromium.org/
1015993002
Cr-Commit-Position: refs/heads/master@{#27273}
rossberg [Wed, 18 Mar 2015 12:51:49 +0000 (05:51 -0700)]
Adjust key behaviour for weak collections
R=dslomov@chromium.org
BUG=460083,v8:3970,v8:3971
LOG=Y
Review URL: https://codereview.chromium.org/
1018923002
Cr-Commit-Position: refs/heads/master@{#27272}
dcarney [Wed, 18 Mar 2015 12:50:41 +0000 (05:50 -0700)]
add interceptors which do not mask existing properties
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
962613002
Cr-Commit-Position: refs/heads/master@{#27271}
dcarney [Wed, 18 Mar 2015 12:50:13 +0000 (05:50 -0700)]
convert last api functions which try to handle exceptions to maybes
BUG=v8:3929
LOG=n
Review URL: https://codereview.chromium.org/
1015083002
Cr-Commit-Position: refs/heads/master@{#27270}
verwaest [Wed, 18 Mar 2015 11:43:51 +0000 (04:43 -0700)]
Remove PropertyCell space
Replaces StoreGlobalCell / LoadGlobalCell with NamedField variants that use write barriers.
BUG=
Review URL: https://codereview.chromium.org/
1016803002
Cr-Commit-Position: refs/heads/master@{#27269}
svenpanne [Wed, 18 Mar 2015 11:42:36 +0000 (04:42 -0700)]
Tweak the TurboFan pipeline for stub compilation.
Review URL: https://codereview.chromium.org/
1010673004
Cr-Commit-Position: refs/heads/master@{#27268}
ulan [Wed, 18 Mar 2015 11:41:26 +0000 (04:41 -0700)]
Allow compaction when incremental marking is on.
BUG=chromium:450824
LOG=NO
Review URL: https://codereview.chromium.org/
1014263002
Cr-Commit-Position: refs/heads/master@{#27267}
bmeurer [Wed, 18 Mar 2015 10:43:10 +0000 (03:43 -0700)]
[turbofan] Don't run value numbering with typed lowering.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1019443002
Cr-Commit-Position: refs/heads/master@{#27266}
jochen [Wed, 18 Mar 2015 10:36:54 +0000 (03:36 -0700)]
Turn on overapproximation of the weak closure
BUG=v8:3862
R=hpayer@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
1013133002
Cr-Commit-Position: refs/heads/master@{#27265}
loislo [Wed, 18 Mar 2015 10:34:09 +0000 (03:34 -0700)]
CodeCleanup: eliminate unnecessary base class and make the children unvirtual.
I found some strange split in deopt entry points generator.
The code for table entry generator had two classes.
It is safe to join these classes together and drop virtual.
BUG=
LOG=n
Review URL: https://codereview.chromium.org/
1010413003
Cr-Commit-Position: refs/heads/master@{#27264}
mstarzinger [Wed, 18 Mar 2015 10:19:04 +0000 (03:19 -0700)]
Remove kind field from StackHandler.
This relands commit
96f79568a926966ebcf0685bf9adc947f4e1fbff.
This makes the Isolate::Throw logic not depend on a prediction of
whether an exception is caught or uncaught. Such a prediction is
inherently undecidable because a finally block can decide between
consuming or re-throwing an exception depending on arbitray control
flow.
There still is a conservative prediction mechanism in place that
components like the debugger or tracing can use for reporting.
With this change we can get rid of the StackHandler::kind field, a
pre-requisite to do table-based lookups of exception handlers.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
997213003
Cr-Commit-Position: refs/heads/master@{#27263}
vegorov [Wed, 18 Mar 2015 10:14:51 +0000 (03:14 -0700)]
Make counter and histogram related callbacks part of the Isolate::CreateParams.
Some native counters (e.g. KeyedLoadGenericSlow) are referenced from stubs that are generated very early in the Isolate lifecycle before v8::Isolate::New returns. Thus counter lookup callback also needs to be installed early prior to v8::internal::Isolate::Init call. Otherwise assembler will just assume that the counter is not enabled and produce no code from IncrementCounter - because address of the counter is not yet available.
Histogram related callbacks are moved for consistency to make them able to collect samples which occur at isolate initialization time.
BUG=
Review URL: https://codereview.chromium.org/
1010233002
Cr-Commit-Position: refs/heads/master@{#27262}
jochen [Wed, 18 Mar 2015 10:01:23 +0000 (03:01 -0700)]
Make tests pass with weak closure overapproximation enabled
BUG=v8:3862
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1014873002
Cr-Commit-Position: refs/heads/master@{#27261}
bmeurer [Wed, 18 Mar 2015 09:46:06 +0000 (02:46 -0700)]
[turbofan] Cache more common operators.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1015053002
Cr-Commit-Position: refs/heads/master@{#27260}
hpayer [Wed, 18 Mar 2015 09:38:46 +0000 (02:38 -0700)]
Merge old data and pointer space.
BUG=
Review URL: https://codereview.chromium.org/
1012023002
Cr-Commit-Position: refs/heads/master@{#27259}
loislo [Wed, 18 Mar 2015 09:30:29 +0000 (02:30 -0700)]
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}
jarin [Wed, 18 Mar 2015 09:25:42 +0000 (02:25 -0700)]
[Turbofan] Only weaken types for Phi nodes.
We also need to fix the weakening to weaken unions with ranges in them.
BUG=
Review URL: https://codereview.chromium.org/
1011103003
Cr-Commit-Position: refs/heads/master@{#27257}
bmeurer [Wed, 18 Mar 2015 08:45:47 +0000 (01:45 -0700)]
[turbofan] Cache Call operator for AllocateHeapNumberStub in change lowering.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1015953002
Cr-Commit-Position: refs/heads/master@{#27256}
michael_dawson [Wed, 18 Mar 2015 08:43:21 +0000 (01:43 -0700)]
PPC: Changes to allow AIX to compile with gcc 4.8.3
We were able to remove most of our changes needed to compile
on AIX with an earlier compiler level. These changes are the
remaining ones.
The changes in heap/heap.cc are needed because otherwise the
compiler complains that result is potentially used before
it is initialized.
The changes in heap/mark-compact.cc are required because
AIX supports the full 64 bit address range so the check
being guarded is invalid.
The changes in build/toolchain.gypi and
test/cctest/cctest/gyp are aix only and are adjust the
compile/link options to allow the AIX build to succeed.
modified: build/toolchain.gypi
modified: src/heap/heap.cc
modified: src/heap/mark-compact.cc
modified: test/cctest/cctest.gyp
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1013833002
Cr-Commit-Position: refs/heads/master@{#27255}
michael_dawson [Wed, 18 Mar 2015 08:42:14 +0000 (01:42 -0700)]
PPC: Force PPC linux to use gcc and gcc 4.8.3 changes for AIX
- We don't have clang for PPC, force use of gcc.
- Changes needed to compile/build on AIX with gcc 4.8.3 missed
from last review
modified: build/standalone.gypi
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1018543003
Cr-Commit-Position: refs/heads/master@{#27254}
loislo [Wed, 18 Mar 2015 08:31:20 +0000 (01:31 -0700)]
CpuProfiler: x64. put right address to the stack, so the callee would be able to resolve it into the right deopt_info.
'from' is using for Code object lookup and will be used for
inline_id lookup. see https://codereview.chromium.org/
1012633002
So we should be able to map it.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
1012743002
Cr-Commit-Position: refs/heads/master@{#27253}
loislo [Wed, 18 Mar 2015 08:09:34 +0000 (01:09 -0700)]
CpuProfiler: ia32. put right address to the stack, so the callee would be able to resolve it into the right deopt_info.
'from' is using for Code object lookup and will be used for
inline_id lookup. see https://codereview.chromium.org/
1012633002
So we should be able to map it.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
1014783002
Cr-Commit-Position: refs/heads/master@{#27252}
loislo [Wed, 18 Mar 2015 08:08:27 +0000 (01:08 -0700)]
CpuProfiler: x87. put right address to the stack, so the callee would be able to resolve it into the right deopt_info.
'from' is using for Code object lookup and will be used for
inline_id lookup. see https://codereview.chromium.org/
1012633002
So we should be able to map it.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
1013243002
Cr-Commit-Position: refs/heads/master@{#27251}
bmeurer [Wed, 18 Mar 2015 07:27:31 +0000 (00:27 -0700)]
[turbofan] Improve ChangeLowering.
- Use representation information provided by the type system to skip SMI
checks.
- Fix combining of ChangeTaggedToFloat64 with JSToNumber now that JS
operators can produce control.
- Remove the unnecessary abstraction of smi/field offsets.
- Improve unit test coverage.
- Various cosmetic fixes.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1018873002
Cr-Commit-Position: refs/heads/master@{#27250}
wtc [Tue, 17 Mar 2015 23:13:00 +0000 (16:13 -0700)]
Fix the GN build for MIPS.
Define V8_TARGET_ARCH_MIPS or V8_TARGET_ARCH_MIPS64 if the target
arch is mipsel or mips64el.
R=dpranke@chromium.org,jochen@chromium.org,machenbach@chromium.org
BUG=v8:3972
LOG=N
Review URL: https://codereview.chromium.org/
1016923002
Cr-Commit-Position: refs/heads/master@{#27249}
titzer [Tue, 17 Mar 2015 18:51:08 +0000 (11:51 -0700)]
[turbofan] Clean up TRACE macros and use variadic macros.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1014853002
Cr-Commit-Position: refs/heads/master@{#27248}
loislo [Tue, 17 Mar 2015 18:50:02 +0000 (11:50 -0700)]
CpuProfiler: collect deopt pc offset for further usage in the inlined functions stack resolver.
this is a fourth part of https://codereview.chromium.org/
1012633002
In another patch I'll collect the inlining tree in cpu-profiler CodeEntry
Each leaf for an inlined function will have a list of deopts and their pc offsets.
So when deopt happens I'll be able to map the deopt pc_offset into
inlined function id and point the web developer to the exact place
where deopt has happened even if it was in the inlined function.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
1013753007
Cr-Commit-Position: refs/heads/master@{#27247}
titzer [Tue, 17 Mar 2015 17:55:21 +0000 (10:55 -0700)]
[turbofan] Fix bug in OSR deconstruction.
In constructing the transfer between loop copies, we need to merge the backedges from all the previous copies of the given loop. The control reduction will work out which ones are really reachable.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1004993004
Cr-Commit-Position: refs/heads/master@{#27246}
dusan.milosavljevic [Tue, 17 Mar 2015 17:05:06 +0000 (10:05 -0700)]
MIPS64: Fix bugs in branches for unsigned conditions.
TEST=cctest/test-branch-combine
BUG=
Review URL: https://codereview.chromium.org/
1017733002
Cr-Commit-Position: refs/heads/master@{#27245}
paul.lind [Tue, 17 Mar 2015 17:00:12 +0000 (10:00 -0700)]
MIPS: Support INTERNAL_REFERENCE_ENCODED in serializer.
Add mips support for the changes in https://codereview.chromium.org/
1000373003. On mips, these support the long-branch mechanism.
TEST=test-serialize/SerializeToplevelLargeCodeObject
BUG=
Review URL: https://codereview.chromium.org/
1014763003
Cr-Commit-Position: refs/heads/master@{#27244}
mstarzinger [Tue, 17 Mar 2015 15:49:24 +0000 (08:49 -0700)]
Delegate throwing in RegExpExecStub to CEntryStub.
This ensures that there is only one stub that deals with unwinding the
stack. Having more than one place containing that logic is brittle and
error prone, especially when it is a corner case only for RangeErrors.
R=titzer@chromium.org
TEST=mjsunit/regress/regress-crbug-467047
BUG=chromium:467047
LOG=N
Review URL: https://codereview.chromium.org/
1012103002
Cr-Commit-Position: refs/heads/master@{#27243}
ulan [Tue, 17 Mar 2015 15:37:15 +0000 (08:37 -0700)]
Mark mjsunit/debug-references as flaky in gc-stress.
BUG=v8:3969
LOG=NO
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1016743003
Cr-Commit-Position: refs/heads/master@{#27242}
mvstanton [Tue, 17 Mar 2015 15:16:21 +0000 (08:16 -0700)]
Feedback vector: ASAN found memory leaks during AST Numbering pass.
The cause was dynamic allocation of an accounting structure used to
create/initialize the type feedback vector, done at the end of the
numbering pass. The solution is to Zone-allocate the structure to
bring it's lifetime in line with the compilation unit.
BUG=
Review URL: https://codereview.chromium.org/
1014793003
Cr-Commit-Position: refs/heads/master@{#27241}
mstarzinger [Tue, 17 Mar 2015 14:08:02 +0000 (07:08 -0700)]
[turbofan] Follow-up to evaluation order in AstGraphBuilder.
The evaluation order of receiver versus arguments is not properly
defined by C++. This caused issues with Clang where the environment
changed after the receiveing environment was already loaded.
R=jarin@chromium.org
BUG=chromium:467531
LOG=N
Review URL: https://codereview.chromium.org/
1011123002
Cr-Commit-Position: refs/heads/master@{#27240}
dcarney [Tue, 17 Mar 2015 13:27:25 +0000 (06:27 -0700)]
correctly invalidate global cells
additionally, remove unnecessary deopts when transitioning to global accessor properties from data properties
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
996133002
Cr-Commit-Position: refs/heads/master@{#27239}
mstarzinger [Tue, 17 Mar 2015 12:36:57 +0000 (05:36 -0700)]
[turbofan] Fix C++ evaluation order in AstGraphBuilder.
The evaluation order of receiver versus arguments is not properly
defined by C++. This caused issues with Clang where the environment
changed after the receiveing environment was already loaded.
R=jarin@chromium.org
BUG=chromium:467531
TEST=mjsunit/regress/regress-crbug-467531
LOG=N
Review URL: https://codereview.chromium.org/
1015683002
Cr-Commit-Position: refs/heads/master@{#27238}
bmeurer [Tue, 17 Mar 2015 12:35:51 +0000 (05:35 -0700)]
[turbofan] Fix obsolete workaround for type system in simplified lowering.
Ranges and bitset types now work together, so we don't need these weird
hacks anymore.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
994283005
Cr-Commit-Position: refs/heads/master@{#27237}
dcarney [Tue, 17 Mar 2015 11:45:35 +0000 (04:45 -0700)]
convert String::New functions to maybe
R=svenpanne@chromium.org
BUG=v8:3929
LOG=n
Review URL: https://codereview.chromium.org/
1010803008
Cr-Commit-Position: refs/heads/master@{#27236}
mvstanton [Tue, 17 Mar 2015 11:28:09 +0000 (04:28 -0700)]
Use platform specific stubs for vector-based Load/KeyedLoad.
A hydrogen code stub is not the best approach because it builds a frame
and doesn't have the technology to discard roots at tail call exits.
Platform-specific stubs provide much better performance at this point.
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
988653003
Cr-Commit-Position: refs/heads/master@{#27235}
yangguo [Tue, 17 Mar 2015 11:04:12 +0000 (04:04 -0700)]
Serializer: Cache FlagList::Hash result.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
1011703003
Cr-Commit-Position: refs/heads/master@{#27234}
ulan [Tue, 17 Mar 2015 10:52:00 +0000 (03:52 -0700)]
Retain maps that have live prototypes.
BUG=v8:3664
LOG=NO
Review URL: https://codereview.chromium.org/
1009343002
Cr-Commit-Position: refs/heads/master@{#27233}
jarin [Tue, 17 Mar 2015 09:38:37 +0000 (02:38 -0700)]
[turbofan] Variable liveness analysis for deopt.
This change introduces a liveness analyzer for local variables in frame states.
The main idea is to use the AstGraphBuilder::Environment class to build the control flow graph, and record local variable loads, stores and checkpoints in the CFG basic blocks (LivenessAnalyzerBlock class).
After the graph building finishes, we run a simple data flow analysis over the CFG to figure out liveness of each local variable at each checkpoint. Finally, we run a pass over all the checkpoints and replace dead local variables in the frame states with the 'undefined' value.
Performance numbers for Embenchen are below.
----------- box2d.js
Current --turbo-deoptimization: EmbenchenBox2d(RunTime): 11265 ms.
d8-master --turbo-deoptimization: EmbenchenBox2d(RunTime): 11768 ms.
d8-master: EmbenchenBox2d(RunTime): 10996 ms.
----------- bullet.js
Current --turbo-deoptimization: EmbenchenBullet(RunTime): 17049 ms.
d8-master --turbo-deoptimization: EmbenchenBullet(RunTime): 17384 ms.
d8-master: EmbenchenBullet(RunTime): 16153 ms.
----------- copy.js
Current --turbo-deoptimization: EmbenchenCopy(RunTime): 4877 ms.
d8-master --turbo-deoptimization: EmbenchenCopy(RunTime): 4938 ms.
d8-master: EmbenchenCopy(RunTime): 4940 ms.
----------- corrections.js
Current --turbo-deoptimization: EmbenchenCorrections(RunTime): 7068 ms.
d8-master --turbo-deoptimization: EmbenchenCorrections(RunTime): 6718 ms.
d8-master: EmbenchenCorrections(RunTime): 6858 ms.
----------- fannkuch.js
Current --turbo-deoptimization: EmbenchenFannkuch(RunTime): 4167 ms.
d8-master --turbo-deoptimization: EmbenchenFannkuch(RunTime): 4608 ms.
d8-master: EmbenchenFannkuch(RunTime): 4149 ms.
----------- fasta.js
Current --turbo-deoptimization: EmbenchenFasta(RunTime): 9981 ms.
d8-master --turbo-deoptimization: EmbenchenFasta(RunTime): 9848 ms.
d8-master: EmbenchenFasta(RunTime): 9640 ms.
----------- lua_binarytrees.js
Current --turbo-deoptimization: EmbenchenLuaBinaryTrees(RunTime): 11571 ms.
d8-master --turbo-deoptimization: EmbenchenLuaBinaryTrees(RunTime): 13089 ms.
d8-master: EmbenchenLuaBinaryTrees(RunTime): 10957 ms.
----------- memops.js
Current --turbo-deoptimization: EmbenchenMemOps(RunTime): 7766 ms.
d8-master --turbo-deoptimization: EmbenchenMemOps(RunTime): 7346 ms.
d8-master: EmbenchenMemOps(RunTime): 7738 ms.
----------- primes.js
Current --turbo-deoptimization: EmbenchenPrimes(RunTime): 7459 ms.
d8-master --turbo-deoptimization: EmbenchenPrimes(RunTime): 7453 ms.
d8-master: EmbenchenPrimes(RunTime): 7451 ms.
----------- skinning.js
Current --turbo-deoptimization: EmbenchenSkinning(RunTime): 15564 ms.
d8-master --turbo-deoptimization: EmbenchenSkinning(RunTime): 15611 ms.
d8-master: EmbenchenSkinning(RunTime): 15583 ms.
----------- zlib.js
Current --turbo-deoptimization: EmbenchenZLib(RunTime): 10825 ms.
d8-master --turbo-deoptimization: EmbenchenZLib(RunTime): 11180 ms.
d8-master: EmbenchenZLib(RunTime): 10823 ms.
BUG=
Review URL: https://codereview.chromium.org/
949743002
Cr-Commit-Position: refs/heads/master@{#27232}
loislo [Tue, 17 Mar 2015 09:37:26 +0000 (02:37 -0700)]
CpuProfiler: extract DeoptInfo fill in code into a static function.
the third part of the patch https://codereview.chromium.org/
1012633002
this patch
1) moves DeoptInfo builder code to platform independent file lithium-codegen.cc
2) adds inlining_id property to HEnterInlined so we can use it on lithium level.
BUG=chromium:452067
LOG=n
Review URL: https://codereview.chromium.org/
1011733005
Cr-Commit-Position: refs/heads/master@{#27231}
yangguo [Tue, 17 Mar 2015 09:23:35 +0000 (02:23 -0700)]
Serializer: micro-optimizations for the deserializer.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
1008923003
Cr-Commit-Position: refs/heads/master@{#27230}
dcarney [Tue, 17 Mar 2015 09:03:40 +0000 (02:03 -0700)]
add missing dcheck to ToLocalChecked
R=svenpanne@chromium.org
BUG=v8:3929
LOG=n
Review URL: https://codereview.chromium.org/
1017663002
Cr-Commit-Position: refs/heads/master@{#27229}
v8-autoroll [Tue, 17 Mar 2015 04:02:31 +0000 (21:02 -0700)]
Update V8 DEPS.
Rolling v8/build/gyp to
d174d75bf69c682cb62af9187879e01513b35e52
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1014683004
Cr-Commit-Position: refs/heads/master@{#27228}
jacob.bramley [Mon, 16 Mar 2015 17:15:16 +0000 (10:15 -0700)]
[ARM64] [turbofan] Improve construction of doubles.
Improve the code generated for construction of a 64-bit floating point
number from two 32-bit integers.
Previously, this moved FP->core, inserted, then moved core->FP for each
half. Now, we construct the double in an X register and move core->FP.
Typically, the temporary register aliases the input register, so the
sequence improves from six to two instructions.
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
BUG=
Review URL: https://codereview.chromium.org/
1008003004
Cr-Commit-Position: refs/heads/master@{#27227}
svenpanne [Mon, 16 Mar 2015 15:34:03 +0000 (08:34 -0700)]
Make valgrind a bit more happy by zero-terminating/initializing strings.
Tiny cleanup on the way...
Review URL: https://codereview.chromium.org/
1007283006
Cr-Commit-Position: refs/heads/master@{#27226}
jochen [Mon, 16 Mar 2015 14:51:09 +0000 (07:51 -0700)]
Hook up over approximating the weak closure to the idle time handler
The feature itself is still behind a flag.
BUG=v8:3862
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1014503003
Cr-Commit-Position: refs/heads/master@{#27225}
loislo [Mon, 16 Mar 2015 14:17:01 +0000 (07:17 -0700)]
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}
ishell [Mon, 16 Mar 2015 13:46:10 +0000 (06:46 -0700)]
Bugfix in hydrogen GVN.
BUG=chromium:467481
LOG=Y
Review URL: https://codereview.chromium.org/
1009933002
Cr-Commit-Position: refs/heads/master@{#27223}
jarin [Mon, 16 Mar 2015 13:43:02 +0000 (06:43 -0700)]
[turbofan] Cache for reusing parts of value vector nodes in frame states.
Instead of the current approach of storing flat vectors in frame states (and possibly reusing the last vector in AST graph builder), this change list builds a tree for the values and tries to reuse the nodes for different frame states. At the moment, we only use this for the local variable part of frame state, but nothing prevents us from using this for all parts.
This change provides two new classes: one for creating the tree (StateValuesCache) and one for iterating the trees (StateValuesAccess).
BUG=
Review URL: https://codereview.chromium.org/
1008213002
Cr-Commit-Position: refs/heads/master@{#27222}
loislo [Mon, 16 Mar 2015 13:41:50 +0000 (06:41 -0700)]
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}
yangguo [Mon, 16 Mar 2015 13:19:10 +0000 (06:19 -0700)]
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}
svenpanne [Mon, 16 Mar 2015 13:08:42 +0000 (06:08 -0700)]
Remove BLACKLIST from check-name-clashes.py, it's wrong nowadays.
Fix the resulting warnings by renaming things apart.
BUG=v8:3947
LOG=n
Review URL: https://codereview.chromium.org/
1009373002
Cr-Commit-Position: refs/heads/master@{#27219}
jochen [Mon, 16 Mar 2015 12:51:47 +0000 (05:51 -0700)]
Repeatedly overapproximate the weak closure as long as we make progress
Also, include the time for building object groups in the tracing scope
for the overapproximation.
BUG=v8:3862
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1012593004
Cr-Commit-Position: refs/heads/master@{#27218}
hpayer [Mon, 16 Mar 2015 12:22:10 +0000 (05:22 -0700)]
Remove all atomic access from store buffer.
Store buffer does not contain stale pointers anymore. Hence, sweeper threads and store buffer processing does not collide.
BUG=
Review URL: https://codereview.chromium.org/
1007273002
Cr-Commit-Position: refs/heads/master@{#27217}
yangguo [Mon, 16 Mar 2015 11:43:28 +0000 (04:43 -0700)]
Fix RelocInfo::Mode enum wrt LAST_STANDARD_NONCOMPACT_ENUM.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1011613003
Cr-Commit-Position: refs/heads/master@{#27216}
mstarzinger [Mon, 16 Mar 2015 11:41:27 +0000 (04:41 -0700)]
Revert of Remove kind field from StackHandler. (patchset #4 id:60001 of https://codereview.chromium.org/
1002203002/)
Reason for revert:
Layout test failure in inspector/sources/debugger/debugger-pause-on-promise-rejection.html
Original issue's description:
> Remove kind field from StackHandler.
>
> This makes the Isolate::Throw logic not depend on a prediction of
> whether an exception is caught or uncaught. Such a prediction is
> inherently undecidable because a finally block can decide between
> consuming or re-throwing an exception depending on arbitray control
> flow.
>
> There still is a conservative prediction mechanism in place that
> components like the debugger or tracing can use for reporting.
>
> With this change we can get rid of the StackHandler::kind field, a
> pre-requisite to do table-based lookups of exception handlers.
>
> R=yangguo@chromium.org
>
> Committed: https://crrev.com/
96f79568a926966ebcf0685bf9adc947f4e1fbff
> Cr-Commit-Position: refs/heads/master@{#27210}
TBR=yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1009903002
Cr-Commit-Position: refs/heads/master@{#27215}
hpayer [Mon, 16 Mar 2015 11:40:12 +0000 (04:40 -0700)]
Delete dead store buffer verification code and code that changes the store buffer in debug mode.
BUG=
Review URL: https://codereview.chromium.org/
1009323002
Cr-Commit-Position: refs/heads/master@{#27214}
jacob.bramley [Mon, 16 Mar 2015 11:34:45 +0000 (04:34 -0700)]
Fix ll_prof.py for static binaries.
BUG=
Review URL: https://codereview.chromium.org/
1007613005
Cr-Commit-Position: refs/heads/master@{#27213}
dusan.milosavljevic [Mon, 16 Mar 2015 11:00:00 +0000 (04:00 -0700)]
MIPS64: Unify and improve Word32 compares to use same instructions as Word64 compares.
The CL enables the same instructions are selected for Word32 and Word64 compare
operations which is possible due to a fact 32-bit inputs and produced values
are always sign-extended.
TEST=
BUG=
Review URL: https://codereview.chromium.org/
1005123002
Cr-Commit-Position: refs/heads/master@{#27212}
ulan [Mon, 16 Mar 2015 10:16:59 +0000 (03:16 -0700)]
Fix data race in Isolate::CheckDetachedContextsAfterGC
BUG=chromium:462908
LOG=NO
Review URL: https://codereview.chromium.org/
1010713002
Cr-Commit-Position: refs/heads/master@{#27211}
mstarzinger [Mon, 16 Mar 2015 10:06:11 +0000 (03:06 -0700)]
Remove kind field from StackHandler.
This makes the Isolate::Throw logic not depend on a prediction of
whether an exception is caught or uncaught. Such a prediction is
inherently undecidable because a finally block can decide between
consuming or re-throwing an exception depending on arbitray control
flow.
There still is a conservative prediction mechanism in place that
components like the debugger or tracing can use for reporting.
With this change we can get rid of the StackHandler::kind field, a
pre-requisite to do table-based lookups of exception handlers.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1002203002
Cr-Commit-Position: refs/heads/master@{#27210}
jochen [Mon, 16 Mar 2015 09:54:46 +0000 (02:54 -0700)]
Clarify arm gn configuration
R=dpranke@chromium.org
TBR=machenbach@chromium.org
BUG=
LOG=n
Review URL: https://codereview.chromium.org/
1004113003
Cr-Commit-Position: refs/heads/master@{#27209}
yurys [Mon, 16 Mar 2015 09:49:18 +0000 (02:49 -0700)]
Remove obsolete TakeHeapSnapshot method from API
BUG=chromium:465651
LOG=Y
Review URL: https://codereview.chromium.org/
997583004
Cr-Commit-Position: refs/heads/master@{#27208}
ishell [Mon, 16 Mar 2015 09:40:34 +0000 (02:40 -0700)]
Revert of Reland of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer. (patchset #3 id:40001 of https://codereview.chromium.org/
988363002/)
Reason for revert:
Increased rate of Chrome crashes. Requires further investigation.
Original issue's description:
> Reland of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
>
> The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
> This CL also adds useful machinery that helps triggering incremental write barriers.
>
> BUG=chromium:454297, chromium:465273
> LOG=Y
>
> Committed: https://crrev.com/
6d0677d845c47ab9fa297de61d0e3d8e5480a02a
> Cr-Commit-Position: refs/heads/master@{#27141}
TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:454297, chromium:465273
Review URL: https://codereview.chromium.org/
1004623003
Cr-Commit-Position: refs/heads/master@{#27207}
michael_dawson [Mon, 16 Mar 2015 09:26:31 +0000 (02:26 -0700)]
PPC: Exclude mirror-object test until issue is resolved
modified: test/mjsunit/mjsunit.status
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
997773003
Cr-Commit-Position: refs/heads/master@{#27206}
yurys [Mon, 16 Mar 2015 09:16:12 +0000 (02:16 -0700)]
Beautify syntax error for unterminated argument list
BUG=chromium:339474
LOG=Y
Review URL: https://codereview.chromium.org/
1002263004
Cr-Commit-Position: refs/heads/master@{#27205}
michael_dawson [Mon, 16 Mar 2015 08:40:14 +0000 (01:40 -0700)]
PPC: Further leverage internal references.
Enable code dependent on the newly provided common code support for
encoded internal references.
modified: src/ppc/code-stubs-ppc.cc
modified: test/cctest/cctest.status
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1008963002
Cr-Commit-Position: refs/heads/master@{#27204}
yangguo [Mon, 16 Mar 2015 08:14:32 +0000 (01:14 -0700)]
Add more debug output for flaky debug-references test.
TBR=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
1013603002
Cr-Commit-Position: refs/heads/master@{#27203}
michael_dawson [Mon, 16 Mar 2015 08:01:51 +0000 (01:01 -0700)]
PPC: Implement turbofan Float64Min and Float64Max machine operators.
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1006913002
Cr-Commit-Position: refs/heads/master@{#27202}
bmeurer [Mon, 16 Mar 2015 07:27:52 +0000 (00:27 -0700)]
[turbofan] Fix typo in ControlReducer.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1001063003
Cr-Commit-Position: refs/heads/master@{#27201}
machenbach [Sat, 14 Mar 2015 18:41:28 +0000 (11:41 -0700)]
Update V8 DEPS.
Rolling v8/tools/clang to
37246cb63b9720d6fe74b473210291007e49297b
TBR=jochen@chromium.org
BUG=chromium:466099
LOG=n
Review URL: https://codereview.chromium.org/
1005333002
Cr-Commit-Position: refs/heads/master@{#27200}
Michael Achenbach [Sat, 14 Mar 2015 17:12:49 +0000 (10:12 -0700)]
Whitespace change for updating perf shards (2)
Cr-Commit-Position: refs/heads/master@{#27199}
Michael Achenbach [Sat, 14 Mar 2015 16:49:22 +0000 (09:49 -0700)]
Whitespace change for updating perf shards (1)
Cr-Commit-Position: refs/heads/master@{#27198}
machenbach [Sat, 14 Mar 2015 02:04:33 +0000 (19:04 -0700)]
Make release scripts even more robust.
Also clean up left alone release branch in the chromium
checkout of the v8rel script.
TBR=tandrii@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1003383003
Cr-Commit-Position: refs/heads/master@{#27197}
machenbach [Sat, 14 Mar 2015 01:20:45 +0000 (18:20 -0700)]
Make release scripts more robust.
Remembering the current branch is a relic from the past
where no work-dir checkout was used. Now this doesn't give
much benefit and screws up the script if it was left in
a bad state (e.g. after a master restart).
TBR=tandrii@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/
1002383002
Cr-Commit-Position: refs/heads/master@{#27196}
Michael Achenbach [Sat, 14 Mar 2015 00:33:24 +0000 (17:33 -0700)]
Whitespace change to test slave-side triggers.
Cr-Commit-Position: refs/heads/master@{#27195}
Michael Achenbach [Fri, 13 Mar 2015 21:51:42 +0000 (14:51 -0700)]
Whitespace change to test slave-side triggers.
Cr-Commit-Position: refs/heads/master@{#27194}
Michael Achenbach [Fri, 13 Mar 2015 21:50:40 +0000 (14:50 -0700)]
Whitespace change to test slave-side triggers.
Cr-Commit-Position: refs/heads/master@{#27193}
jochen [Fri, 13 Mar 2015 20:49:43 +0000 (13:49 -0700)]
Don't assert that we only cross compile on linux
We also cross compile on Windows for example. Since we can't switch the
toolchain there, we'll just use the 64bit toolchain and produce an
invalid snapshot :-/
BUG=none
R=dpranke@chromium.org
LOG=n
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1008933002
Cr-Commit-Position: refs/heads/master@{#27192}
mstarzinger [Fri, 13 Mar 2015 17:58:04 +0000 (10:58 -0700)]
Remove some dead code from the Isolate.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1009453004
Cr-Commit-Position: refs/heads/master@{#27191}
arv [Fri, 13 Mar 2015 17:19:40 +0000 (10:19 -0700)]
[es6] Function length property should be configurable
ES6 specs the function length property (it was not part of ES5) and
it makes it configurable.
BUG=v8:3045
LOG=N
R=mstarzinger@chromium.org, adamk@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/
993073002
Cr-Commit-Position: refs/heads/master@{#27190}
dslomov [Fri, 13 Mar 2015 16:57:25 +0000 (09:57 -0700)]
Fix test for function declarations syntax error.
Also fix parsing of declarations after case labels.
R=waldron.rick@gmail.com,rossberg@chromium.org
BUG=v8:3939
LOG=N
Review URL: https://codereview.chromium.org/
964063003
Cr-Commit-Position: refs/heads/master@{#27189}
rossberg [Fri, 13 Mar 2015 16:26:38 +0000 (09:26 -0700)]
[strong] Check super constructor calls
R=marja@chromium.org
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1002253002
Cr-Commit-Position: refs/heads/master@{#27188}
dslomov [Fri, 13 Mar 2015 15:15:42 +0000 (08:15 -0700)]
Remove --harmony-scoping flag.
We have been shipping harmony scoping for 2 Chrome releases now (M41
and M42). Time to remove the flag.
R=rossberg@chromium.org
LOG=Y
Review URL: https://codereview.chromium.org/
1007783002
Cr-Commit-Position: refs/heads/master@{#27187}
kozyatinskiy [Fri, 13 Mar 2015 15:11:47 +0000 (08:11 -0700)]
[V8] Use Function.name in Error.stack
Error.stack contains function.name if its type is string.
Otherwise if function have inferred name then .stack contains it.
For functions from eval .stack property contains "eval".
LOG=N
BUG=chromium:17356
R=yurys@chromium.org
Review URL: https://codereview.chromium.org/
919653002
Cr-Commit-Position: refs/heads/master@{#27186}
yangguo [Fri, 13 Mar 2015 15:08:12 +0000 (08:08 -0700)]
Hide Symbol implementation in a closure.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1009443002
Cr-Commit-Position: refs/heads/master@{#27185}