Commit Graph

29753 Commits

Author SHA1 Message Date
oth
8cf73ae1e9 [interpreter] Adds test for tracing.
Fixes a stale DCHECK and a memory leak in tracing output.

LOG=N
BUG=v8:4280
TBR=rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/1844023003

Cr-Commit-Position: refs/heads/master@{#35161}
2016-03-31 11:58:06 +00:00
mlippautz
21f1dfe916 [heap] Remove store buffer top from roots
Change x64 to use the external references like all other platforms.

BUG=chromium:581076
LOG=N

Review URL: https://codereview.chromium.org/1844283002

Cr-Commit-Position: refs/heads/master@{#35160}
2016-03-31 11:16:26 +00:00
jochen
731e53c726 Don't sort the input for the postmortem script
R=yangguo@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1845473007

Cr-Commit-Position: refs/heads/master@{#35159}
2016-03-31 11:12:35 +00:00
yangguo
18c80bc879 [d8] remove utility context.
We only use it to store the Stringify function to format
REPL output. This is overkill and introduces issues with
security tokens.

R=jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1845833002

Cr-Commit-Position: refs/heads/master@{#35158}
2016-03-31 10:18:25 +00:00
cbruni
35fa419a2f [printing] Add COW identifier to elements kind
BUG=

Review URL: https://codereview.chromium.org/1842743002

Cr-Commit-Position: refs/heads/master@{#35157}
2016-03-31 10:13:02 +00:00
titzer
08e0ea38cd [wasm] Fix and enable more tests.
R=ahaas@chromium.org, bradnelson@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1846613002

Cr-Commit-Position: refs/heads/master@{#35156}
2016-03-31 09:20:21 +00:00
hpayer
454ab5dd88 [heap] Remove unused no marking scope.
BUG=

Review URL: https://codereview.chromium.org/1849613004

Cr-Commit-Position: refs/heads/master@{#35155}
2016-03-31 09:16:45 +00:00
bmeurer
833618d91f [full-codegen] Reload context register after intrinsic call.
Previously all code stubs (i.e. both platform and Crankshaft code stubs)
preserved the context register for full-codegen (neither Ignition, nor
TurboFan nor Crankshaft require this or would benefit from this), but
the newly introduced TurboFanCodeStubs no longer do this and there's no
need to, so we have to make sure in full-codegen that we restore the
context register after intrinsic calls, which potentially call
TurboFanCodeStubs.

Drive-by-fix: VisitThisFunction can be made platform independent.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/1848553002

Cr-Commit-Position: refs/heads/master@{#35154}
2016-03-31 08:38:41 +00:00
mlippautz
f2a585935f Remove usages of Heap::NewSpaceStart and its external reference
Replace the uses with proper page flag lookups.

BUG=chromium:581412
LOG=N
TEST=mjsunit/allocation-site-info

Review URL: https://codereview.chromium.org/1845463003

Cr-Commit-Position: refs/heads/master@{#35153}
2016-03-31 07:55:26 +00:00
verwaest
bc8f9a78f0 Add initial code-stub version of Object.prototype.hasOwnProperty
It for now only deals with fast-mode smi and object arrays with smi
keys and internalized strings; and fast-mode named properties with an internalized key or symbol.

BUG=v8:2472
LOG=n

Review URL: https://codereview.chromium.org/1843613002

Cr-Commit-Position: refs/heads/master@{#35152}
2016-03-31 07:55:25 +00:00
machenbach
a0aac3cb1d [test] Fix deterministic test shards.
Test case objects were sorted without key function, resulting
in random sort order. On sharded builds, the shards are
determined by the sort order and rely on a deterministic
sorting. This led to random cctest and unittest cases being
dropped or executed twice on sharded testers.

TBR=jkummerow@chromium.org, hablich@chromium.org

Review URL: https://codereview.chromium.org/1842673002

Cr-Commit-Position: refs/heads/master@{#35151}
2016-03-31 07:38:22 +00:00
jochen
799eea1714 gn format the BUILD.gn file
Also protect builtin files with # NOSORT as the order is important here.

BUG=
R=machenbach@chromium.org
LOG=n

Review URL: https://codereview.chromium.org/1842043002

Cr-Commit-Position: refs/heads/master@{#35150}
2016-03-31 07:32:58 +00:00
machenbach
7a4e13b89b [test] Skip more cpu profiler tests on windows.
BUG=v8:2999,v8:4751
LOG=n
NOTRY=true
TBR=hablich@chromium.org

Review URL: https://codereview.chromium.org/1850443004

Cr-Commit-Position: refs/heads/master@{#35149}
2016-03-31 07:24:54 +00:00
machenbach
d298743460 Raise minimum Mac OS version to 10.7
BUG=v8:4847
LOG=y

Review URL: https://codereview.chromium.org/1811283002

Cr-Commit-Position: refs/heads/master@{#35148}
2016-03-31 07:08:45 +00:00
mattloring
607143d460 Gracefully handle unloaded scripts
If a script is unloaded between the collection of an allocation and the
tranlation of an allocation profile, the profiler will segfault. With
this change, we report unloaded scripts as having no line number,column
number, or name.

R=ofrobots@google.com
BUG=

Review URL: https://codereview.chromium.org/1846723002

Cr-Commit-Position: refs/heads/master@{#35147}
2016-03-31 06:36:33 +00:00
zhengxing.li
25fe0e01ef X87: [wasm] Int64Lowering of Int64Mul on ia32 and arm.
port 40bdbef975 (r35131)

  original commit message:
  Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
  operator takes 4 inputs an generates 2 outputs. The inputs are the low
  word of the left input, high word of the left input, the low word of the
  right input, and high word of the right input. The ouputs are the low
  and high word of the result of the multiplication.

BUG=

Review URL: https://codereview.chromium.org/1845183002

Cr-Commit-Position: refs/heads/master@{#35146}
2016-03-31 06:18:39 +00:00
yangguo
297daf6c37 [debugger] allow debug-evaluate to change stack and context values.
R=bmeurer@chromium.org, cbruni@chromium.org, ulan@chromium.org
BUG=chromium:124206,chromium:569811
LOG=N

Review URL: https://codereview.chromium.org/1834633003

Cr-Commit-Position: refs/heads/master@{#35145}
2016-03-31 06:00:21 +00:00
v8-autoroll
046414169a Update V8 DEPS.
Rolling v8/third_party/android_tools to adfd31794011488cd0fc716b53558b2d8a67af8b

Rolling v8/third_party/icu to 628d39f5b088236d2021bf4388549fd92673ff1a

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review URL: https://codereview.chromium.org/1847623003

Cr-Commit-Position: refs/heads/master@{#35144}
2016-03-31 03:26:43 +00:00
mbrandy
20ff44f07f PPC: [wasm] Int64Lowering of Int64Mul.
Port 40bdbef975

Original commit message:
    Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
    operator takes 4 inputs an generates 2 outputs. The inputs are the low
    word of the left input, high word of the left input, the low word of the
    right input, and high word of the right input. The ouputs are the low
    and high word of the result of the multiplication.

R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1847563003

Cr-Commit-Position: refs/heads/master@{#35143}
2016-03-30 22:34:24 +00:00
joransiu
555c46113f S390: Implement RotRight64
Properly implement Rotate Right sequence for S390, to use the 64-bit
RLLG instruction.

R=jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1842093003

Cr-Commit-Position: refs/heads/master@{#35142}
2016-03-30 20:36:32 +00:00
Miran.Karic
a3f941aed4 MIPS64: Replace JR/JALR with JIC/JIALC for r6.
Port of changes that replace JR and JALR instructions with JIC and JIALC
for mips64r6. Macroassembler Jump and Call functions now use JIC and
JIALC if branch delay slot is not used. Code patching is adjusted to
work with new changes. Jr and Jalr macroassembler functions are removed.
Other changes where mips32r6 uses jr/jalr are not done because mips64r6
uses j/jal instructions.

BUG=

Review URL: https://codereview.chromium.org/1830133002

Cr-Commit-Position: refs/heads/master@{#35141}
2016-03-30 16:44:46 +00:00
ahaas
f954934d62 [wasm] Refactoring pair-shift code in the instruction selector of arm and ia32.
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1842013002

Cr-Commit-Position: refs/heads/master@{#35140}
2016-03-30 14:26:17 +00:00
mtrofin
53d51c52f3 [turbofan] Frame elision for code stubs.
Removed Frame::needs_frame and the function-wide logic using it in
favor of FrameAccessState::has_frame, which can be set on a more
granular level, and driving it block by block.

BUG= v8:4533
LOG=N

Review URL: https://codereview.chromium.org/1775323002

Cr-Commit-Position: refs/heads/master@{#35139}
2016-03-30 14:08:28 +00:00
cbruni
a549d4a7aa [keys] adding fast-path for dict-mode objects with own keys only
BUG=

Review URL: https://codereview.chromium.org/1831783002

Cr-Commit-Position: refs/heads/master@{#35138}
2016-03-30 13:25:31 +00:00
bmeurer
2c653a5dee [stubs] Migrate ToLengthStub to TurboFan.
We now have everything in place to fully implement ToLengthStub as
TurboFanCodeStub without any runtime fallback (modulo allocation failure
of course).

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/1843933002

Cr-Commit-Position: refs/heads/master@{#35137}
2016-03-30 12:51:10 +00:00
titzer
d167c3743d [wasm] Mask shift counts on architectures that don't implicitly mask.
R=ahaas@chromium.org,bradnelson@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1845443003

Cr-Commit-Position: refs/heads/master@{#35136}
2016-03-30 12:40:22 +00:00
bmeurer
8d20f2fe37 [builtins] Make Math.ceil, Math.trunc and Math.round optimizable.
Migrate Math.ceil, Math.round and Math.trunc to TurboFan code stubs,
similar to what we did with Math.floor, and make these builtins properly
optimizable in TurboFan via appropriate simplified operators NumberCeil,
NumberRound and NumberTrunc, which are intended to be reusable for
ToInteger and ToLength optimizations that will be done in a followup CL.

Also allows us to kill the funky %RoundNumber runtime function, which
was quite heavy.

Improve test coverage for Math.ceil and Math.trunc a lot, especially
making sure that we also properly trigger the TurboFan builtin reducer
case.

R=jarin@chromium.org
BUG=v8:4059
LOG=n

Review URL: https://codereview.chromium.org/1841993002

Cr-Commit-Position: refs/heads/master@{#35135}
2016-03-30 11:57:20 +00:00
titzer
257bdfe543 [wasm] Fix asm.js semantics for divide by zero in WASM translation.
R=ahaas@chromium.org,bradnelson@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1839333002

Cr-Commit-Position: refs/heads/master@{#35134}
2016-03-30 11:37:44 +00:00
verwaest
baa34fae02 Speed up accessing default code caches in maps.
BUG=

Review URL: https://codereview.chromium.org/1840193003

Cr-Commit-Position: refs/heads/master@{#35133}
2016-03-30 11:37:43 +00:00
ishell
037f7f6215 [api] Add a switch that controls if ES2015 tail call elimination feature is enabled or not.
BUG=v8:4698
LOG=N
TBR=rossberg@chromium.org

Review URL: https://codereview.chromium.org/1842763002

Cr-Commit-Position: refs/heads/master@{#35132}
2016-03-30 11:05:19 +00:00
ahaas
40bdbef975 [wasm] Int64Lowering of Int64Mul on ia32 and arm.
Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new
operator takes 4 inputs an generates 2 outputs. The inputs are the low
word of the left input, high word of the left input, the low word of the
right input, and high word of the right input. The ouputs are the low
and high word of the result of the multiplication.

R=titzer@chromium.org, v8-arm-ports@googlegroups.com

Review URL: https://codereview.chromium.org/1807273002

Cr-Commit-Position: refs/heads/master@{#35131}
2016-03-30 10:40:06 +00:00
balazs.kilvady
6debe59f92 MIPS: Fix 'MIPS: Support r6 max, min floating point instructions.'
Port d4a391bb7a

Add SmiTag()/smiUntag() calls to make values on stack GC-safe.

Original commit message:
Use macro instructions for min, max ops to get the same functionality on
pre-r6 and r6 targets.

BUG=chromium:598651
LOG=N

Review URL: https://codereview.chromium.org/1842833002

Cr-Commit-Position: refs/heads/master@{#35130}
2016-03-30 09:53:34 +00:00
zhengxing.li
75602673e6 [X87] [TurboFan] Fix Float32ToFloat64 code generation bug.
The CL #34967 (https://codereview.chromium.org/1804243003) and CL #35045 (https://codereview.chromium.org/1825333004)
  exposed one hidden bug in x87 turbofan code generation for Float32ToFloat64.

  This CL fixed this bug.

BUG=

Review URL: https://codereview.chromium.org/1847493002

Cr-Commit-Position: refs/heads/master@{#35129}
2016-03-30 09:34:00 +00:00
hablich
2bb46c3cb9 [Interpreter][WASM] Skip timing out tests
Reference build:
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7641

BUG=v8:4680
LOG=N
TBR=titzer@chromium.org,rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/1841963002

Cr-Commit-Position: refs/heads/master@{#35128}
2016-03-30 08:59:24 +00:00
mythria
b82720df34 [Interpreter] Adds support to fetch return value on break at return.
Debugger fetches the return value of a function when we break at return.
Interpreter holds the return value in accumulator. This is not stored in a
specified location on stack and hence it is not possible to look it up from
stack similar to full-codegen or optimized frames. This cl adds support to
store the value of accumulator on debug breaks. The value of accumulator is
passed to the runtime function and is then stored in thread local data.

Also changes full-codegen implementation to match that of ignition.
The return value from full-codegen is also stored in thread local data.
The return value is fetched directly thread local data instead of
finding it by iterating over frames.

BUG=v8:4280, v8:4690
LOG=N

Review URL: https://codereview.chromium.org/1842683002

Cr-Commit-Position: refs/heads/master@{#35127}
2016-03-30 08:52:03 +00:00
ahaas
682df6dd33 [wasm] New attempt to implement the Int64Lowering of phis.
The new implementation deals with cycles in the TF graph in two steps:
1) The lowering of phis is delayed to avoid cyclic dependencies.
2) The replacement nodes of phis are created already when the phi is
   pushed onto the stack so that other nodes can use these replacements
   for their lowering.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1844553002

Cr-Commit-Position: refs/heads/master@{#35126}
2016-03-30 08:14:35 +00:00
jarin
6f75a216f1 [crankshaft] Get rid of the StoreFrameContext instruction.
Context is always available through deopt data, so there should be
no need to store the context back to the frame every time. (Turbofan
already does not store back to the frame.)

Review URL: https://codereview.chromium.org/1845553002

Cr-Commit-Position: refs/heads/master@{#35125}
2016-03-30 07:23:02 +00:00
yangguo
b25131a451 [debugger] add test case for stepping into tail calls.
R=ishell@chromium.org

Review URL: https://codereview.chromium.org/1837173002

Cr-Commit-Position: refs/heads/master@{#35124}
2016-03-30 05:31:10 +00:00
jarin
cfd3cd6b00 Ensure synchronized access to the perf dump file.
This CL introduces static variables and global lock for writing to the
dump files, so that multiple web workers do not run into trouble.

Review URL: https://codereview.chromium.org/1839133002

Cr-Commit-Position: refs/heads/master@{#35123}
2016-03-30 05:14:45 +00:00
bmeurer
48561ef6ad [turbofan] Fix CodeStubAssembler::ChangeFloat64ToTagged for 32-bit.
Remove the duplicate if_join label (thanks C++ for not even emitting a
warning about this).

R=mtrofin@chromium.org

Review URL: https://codereview.chromium.org/1837393003

Cr-Commit-Position: refs/heads/master@{#35122}
2016-03-30 04:16:51 +00:00
joransiu
1457052874 S390: Fix Mod64/ModU64 sequence
The CodeGenerator sequence for Mod64/ModU64 is incorrectly using
32-bit operations.  Fix Mod64/ModU64 to use 64-bit divides to calculate
the remainder.

Fix disassembly for DLR, which was reading the wrong bits for the two
register operands.

R=jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1839813006

Cr-Commit-Position: refs/heads/master@{#35121}
2016-03-30 01:08:26 +00:00
adamk
d0cb7cf556 Stage --harmony-regexp-exec
R=littledan@chromium.org
BUG=v8:4602
LOG=y

Review URL: https://codereview.chromium.org/1838393002

Cr-Commit-Position: refs/heads/master@{#35120}
2016-03-29 21:50:25 +00:00
joransiu
5ac8e667bf S390: Fix SQEBR sim to treat operands as float32
Fix bug in simulator which incorrectly interpreted the operands
for SQEBR (Float32 sqrt) as 64-bit doubles.  Add missing
disassembler case for SQEBR as well.

R=jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1837263003

Cr-Commit-Position: refs/heads/master@{#35119}
2016-03-29 21:10:21 +00:00
adamk
360586f2f9 Add fast paths for native RegExps in ES2015 subclass-aware code
This patch adds fast paths for @@replace and @@split that call into
the old, side-effect free (and faster) versions of those builtin
operations when possible (roughly, when the receiver is a RegExp
and the 'exec' method is untampered). Also add some micro-optimizations
that further improve performance.

Taken altogether, this takes us from a ~70% regression on the Octane
RegExp benchmark to a ~9% regression.

The test262.status lines for RegExps has been reorganized to make it
clearer the status of individual tests. More work will likely be
required to increase spec compliance before the --harmony-regexp-exec
flag is shipped; some of that work is happening on the spec side.

BUG=v8:4602
LOG=y

Review URL: https://codereview.chromium.org/1836123002

Cr-Commit-Position: refs/heads/master@{#35118}
2016-03-29 20:42:54 +00:00
kozyatinskiy
2bcbd1e8e2 [V8] Add FunctionMirror.prototype.contextDebugId method
This method returns contextDebugId for function. We can't use context_data from FunctionMirror.prototype.script because it can be incorrect when compilation cache is used and one script object was used for JSFunctions in different contexts.

BUG=chromium:595206
LOG=Y
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/1840713002

Cr-Commit-Position: refs/heads/master@{#35117}
2016-03-29 18:21:02 +00:00
jfb
229cc17fab wasm: hook abstract code
We'll require the abstract code (as well as the offset) when we do full backtraces.

R=bradnelson@chromium.org, titzer@chromium.org

Review URL: https://codereview.chromium.org/1838933002

Cr-Commit-Position: refs/heads/master@{#35116}
2016-03-29 18:08:03 +00:00
jfb
18b4470212 wasm: implemente WasmFrame::cast, fix inheritance
wasm_to_js and js_to_wasm both derive from wasm, which was confusing because is_wasm wasn't true for them and that made WasmFrame::cast awkward. Make them derive from StubFrame instead.

R=bradnelson@chromium.org, titzer@chromium.org

Review URL: https://codereview.chromium.org/1839843002

Cr-Commit-Position: refs/heads/master@{#35115}
2016-03-29 17:42:21 +00:00
jacob.bramley
4ee76dafc0 [arm] Correctly detect ARMv8 platforms with old kernels.
AArch64 kernels older than 3.18 presented a different cpuinfo format
than what V8 expects. Most of V8's logic still works, but it misreads
the "CPU architecture" field.

BUG=

Review URL: https://codereview.chromium.org/1841733002

Cr-Commit-Position: refs/heads/master@{#35114}
2016-03-29 17:36:54 +00:00
ulan
bc272e9f7c Represent speed in GCTracer functions as double instead of int.
This avoids redundant casts, loss of precision, and potential overflows.

BUG=chromium:597310
LOG=NO

Review URL: https://codereview.chromium.org/1841043002

Cr-Commit-Position: refs/heads/master@{#35113}
2016-03-29 17:34:41 +00:00
jyan
2e48dc018a S390: Fix prologue offset in GeneratePrologue
Updates the prologue_offset value in LCodeGen::GeneratePrologue after
generating ahi/aghi.
prologue_offset is used in FindCodeAgeSequence. Failing to update
prologue_offset will result in failing to correctly identify the code
aging sequence (young).

R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1843673002

Cr-Commit-Position: refs/heads/master@{#35112}
2016-03-29 17:25:32 +00:00