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}
jochen [Fri, 13 Mar 2015 14:51:22 +0000 (07:51 -0700)]
Use the incremental root marking visitor for overapproximating the weak closure
Since incremental marking hasn't completed yet at this point, we can't
use the MC's root visitor.
Also, we shouldn't hurry with incremental marking while
overapproximating
BUG=v8:3862
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
997423002
Cr-Commit-Position: refs/heads/master@{#27184}
yangguo [Fri, 13 Mar 2015 13:39:18 +0000 (06:39 -0700)]
Encode RelocInfo extra tag to fit changed RelocInfo kind enum.
This fixes some failures on MIPS. Though not all of them, since
MIPS does not correctly implement set_target_internal_reference.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1008823002
Cr-Commit-Position: refs/heads/master@{#27183}
dslomov [Fri, 13 Mar 2015 13:28:05 +0000 (06:28 -0700)]
Implement TDZ in StoreIC for top-level lexicals.
StoreIC::Store was missing a check present in LoadIC::Load.
R=rossberg@chromium.org
BUG=v8:3941
LOG=Y
Review URL: https://codereview.chromium.org/
1001323002
Cr-Commit-Position: refs/heads/master@{#27182}
yangguo [Fri, 13 Mar 2015 12:27:33 +0000 (05:27 -0700)]
Add more output to flaky debug-references test.
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/
1006873002
Cr-Commit-Position: refs/heads/master@{#27181}
jochen [Fri, 13 Mar 2015 12:14:01 +0000 (05:14 -0700)]
Extract code to mark an object during incremental marking
Not only does this remove code duplication, I also plan to use this for
unifying reference group marking later
BUG=none
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1007793002
Cr-Commit-Position: refs/heads/master@{#27180}
yangguo [Fri, 13 Mar 2015 11:18:25 +0000 (04:18 -0700)]
PPC: fix allocation issues for PPC64.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1009433002
Cr-Commit-Position: refs/heads/master@{#27179}
titzer [Fri, 13 Mar 2015 10:47:31 +0000 (03:47 -0700)]
Speed up FastElementsAccessor::ValidContents by removing redundant handle scope.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1002203003
Cr-Commit-Position: refs/heads/master@{#27178}
yangguo [Fri, 13 Mar 2015 10:07:54 +0000 (03:07 -0700)]
Serializer: prepare support for INTERNAL_REFERENCE_ENCODED.
Platform ports that use this RelocInfo kind need to implement
set_target_internal_reference accordingly to distinguish between
INTERNAL_REFERENCE and INTERNAL_REFERENCE_ENCODED.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
1000373003
Cr-Commit-Position: refs/heads/master@{#27177}
marja [Fri, 13 Mar 2015 09:46:05 +0000 (02:46 -0700)]
Remove duplicate script scope.
We previously had two nested SCRIPT_SCOPEs (used to be GLOBAL_SCOPES), but as
the lexical variable implementation changed, the inner one is no longer needed.
BUG=
Review URL: https://codereview.chromium.org/
1002193002
Cr-Commit-Position: refs/heads/master@{#27176}
jochen [Fri, 13 Mar 2015 09:13:50 +0000 (02:13 -0700)]
Turn on job-based optimizing compiler
BUG=v8:3608
R=yangguo@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
1001313002
Cr-Commit-Position: refs/heads/master@{#27175}
michael_dawson [Fri, 13 Mar 2015 07:39:53 +0000 (00:39 -0700)]
PPC: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port
99f8d57f3c5d967bc3b10356b22d7ec7be55e89f
Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
998283002
Cr-Commit-Position: refs/heads/master@{#27160}
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1005693002
Cr-Commit-Position: refs/heads/master@{#27174}
michael_dawson [Fri, 13 Mar 2015 07:34:47 +0000 (00:34 -0700)]
PPC: Simplify pending message object handling.
Port
d4696c484142c601cbd691ae80164043785a3af7
Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
998943003
Cr-Commit-Position: refs/heads/master@{#27150}
R=danno@chromium.org, svenpanne@chromium.org, titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1000963002
Cr-Commit-Position: refs/heads/master@{#27173}
bmeurer [Fri, 13 Mar 2015 07:06:02 +0000 (00:06 -0700)]
[turbofan] Use builtin inlining mechanism for Math.abs and Math.sqrt.
Reduces the amount of custom support code for Math functions in TurboFan
and allows for more general inlining (i.e. independent of parameter
types).
BUG=v8:3952
LOG=n
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
1004083002
Cr-Commit-Position: refs/heads/master@{#27172}
adamk [Thu, 12 Mar 2015 19:04:29 +0000 (12:04 -0700)]
Fix error message for Object.observe accept argument
BUG=chromium:464695
LOG=n
Review URL: https://codereview.chromium.org/
1005553003
Cr-Commit-Position: refs/heads/master@{#27171}
Hannes Payer [Thu, 12 Mar 2015 18:01:47 +0000 (19:01 +0100)]
Reactivate all the cores in cpu.sh.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1004763002
Cr-Commit-Position: refs/heads/master@{#27170}
balazs.kilvady [Thu, 12 Mar 2015 17:29:00 +0000 (10:29 -0700)]
MIPS: Improve naming of turbofan ops for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
BUG=
Review URL: https://codereview.chromium.org/
1006523002
Cr-Commit-Position: refs/heads/master@{#27169}
balazs.kilvady [Thu, 12 Mar 2015 16:43:39 +0000 (09:43 -0700)]
MIPS: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port
99f8d57f3c5d967bc3b10356b22d7ec7be55e89f
Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.
BUG=
Review URL: https://codereview.chromium.org/
1006513002
Cr-Commit-Position: refs/heads/master@{#27168}
arv [Thu, 12 Mar 2015 16:36:16 +0000 (09:36 -0700)]
Use path in name for test262-es6
For ES5 the file names always included the whole path, like this:
ch15/15.2/15.2.3/15.2.3.14/15.2.3.14-1-3.js
For ES6 this is no longer true:
language/computed-property-names/basics/symbol.js
language/computed-property-names/class/method/symbol.js
To allow the status file to correctly identify the right test we need
to change the reported test name to include the whole path.
BUG=None
LOG=N
R=rossberg@chromium.org, machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1001613002
Cr-Commit-Position: refs/heads/master@{#27167}
dcarney [Thu, 12 Mar 2015 16:03:19 +0000 (09:03 -0700)]
remove DeletedField from PropertyDetails
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1002703002
Cr-Commit-Position: refs/heads/master@{#27166}
dslomov [Thu, 12 Mar 2015 15:44:32 +0000 (08:44 -0700)]
Switch the order of experimental global initialization and running natives.
The order should match the one for normal natives.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
988513003
Cr-Commit-Position: refs/heads/master@{#27165}
jochen [Thu, 12 Mar 2015 15:39:41 +0000 (08:39 -0700)]
Use target_cpu instead of cpu_arch in BUILD.gn
Also add missing defines for arm simulator build
BUG=v8:3841
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
874393007
Cr-Commit-Position: refs/heads/master@{#27164}
johan [Thu, 12 Mar 2015 15:12:37 +0000 (08:12 -0700)]
Fix build on solaris platforms
e8b9f2d7 introduced a different cast which broke building on Illumos.
Revert to previous behavior for V8_OS_SOLARIS only.
Found on SmartOS while building with gcc 4.9.0.
edit1: adding jochen to reviewers since he was assigned through the issue tracker and danno since he seems to do a fair amount of cross-platform work
edit2: removing BUG reference because I don't understand what LOG needs to contain (and it seems to link to chromium and not the v8 repo). Please edit commit message as appropriate.
BUG=3935
LOG=n
Review URL: https://codereview.chromium.org/
990063002
Cr-Commit-Position: refs/heads/master@{#27163}
mstarzinger [Thu, 12 Mar 2015 15:04:30 +0000 (08:04 -0700)]
[turbofan] Bring back long lost comment to AstGraphBuilder.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1004673002
Cr-Commit-Position: refs/heads/master@{#27162}
yangguo [Thu, 12 Mar 2015 14:47:35 +0000 (07:47 -0700)]
Hide RegExp and String initialization in a closure.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1000063002
Cr-Commit-Position: refs/heads/master@{#27161}
bmeurer [Thu, 12 Mar 2015 14:07:28 +0000 (07:07 -0700)]
[turbofan] Introduce optional Float64Min and Float64Max machine operators.
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
998283002
Cr-Commit-Position: refs/heads/master@{#27160}
caitpotter88 [Thu, 12 Mar 2015 14:01:56 +0000 (07:01 -0700)]
[es6] support template literals after MemberExpression
BUG=v8:3958, 450942
LOG=N
R=arv@chromium.org
Review URL: https://codereview.chromium.org/
996223003
Cr-Commit-Position: refs/heads/master@{#27159}
balazs.kilvady [Thu, 12 Mar 2015 13:54:31 +0000 (06:54 -0700)]
MIPS: Simplify pending message object handling.
Port
d4696c484142c601cbd691ae80164043785a3af7
Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.
BUG=
Review URL: https://codereview.chromium.org/
1004623002
Cr-Commit-Position: refs/heads/master@{#27158}
mstarzinger [Thu, 12 Mar 2015 13:49:55 +0000 (06:49 -0700)]
[turbofan] Introduce builders for property access.
This introduces a choke point in the AstGraphBuilder for property
access creation. This makes it easier to enrich all such nodes with
additional side-table or debugging information.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1002713002
Cr-Commit-Position: refs/heads/master@{#27157}
bashi [Thu, 12 Mar 2015 12:27:41 +0000 (05:27 -0700)]
Add Cast() for Int32 and Uint32
It should be possible to cast a Value to Int32 without throwing an exception
when IsInt32() is true. Same for Uint32.
BUG=chromium:462402
LOG=Y
Review URL: https://codereview.chromium.org/
1003663002
Cr-Commit-Position: refs/heads/master@{#27156}
Sven Panne [Thu, 12 Mar 2015 11:46:12 +0000 (12:46 +0100)]
Remove funky 2-stage initialization of ParserInfo and an adventurous memset.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
1002673002
Cr-Commit-Position: refs/heads/master@{#27155}
ishell [Thu, 12 Mar 2015 11:44:23 +0000 (04:44 -0700)]
Incorrect handling of HTransitionElementsKind in hydrogen check elimination phase fixed.
BUG=chromium:460917
LOG=Y
Review URL: https://codereview.chromium.org/
1000893003
Cr-Commit-Position: refs/heads/master@{#27154}