Commit Graph

30118 Commits

Author SHA1 Message Date
clemensh
e2ec04d2ab Move MessageLocations constructor out of header
This is a bit unfortunate, but otherwise we would have to include
objects.h before message.h, since for the initialization of a Handle<T>,
the compiler checks that Object* can be assigned to T*. So it would
need to know about the inheritance for initializing Handle<Script> and
Handle<JSFunction>.

R=mstarzinger@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35626}
2016-04-19 15:15:05 +00:00
mstarzinger
1705b7de4f [compiler] Remove obsolete guard in MarkForOptimization.
The guard in JSFunction::MarkForOptimization checking whether a function
is being debugged is overly protective. The compilation pipeline will
bailout itself in that circumstance. Having the runtime behave similar
makes sure the debugger observes a situation closer to reality.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35625}
2016-04-19 14:42:59 +00:00
clemensh
5c1d28770b [wasm] Add test for detailed stack trace
This cctest triggers a detailed stack trace containing WASM frames.

R=jfb@chromium.org, mstarzinger@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35624}
2016-04-19 14:20:43 +00:00
mstarzinger
51a6cd3ae4 [compiler] Avoid spamming --trace-opt with lookup failures.
This stops printing a log line for when a lookup in the optimized code
map did not yield a result. Logging such a negative result that will
inevitably trigger a compile anyways has little benefit and just spams
the console unnecessarily.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35623}
2016-04-19 13:25:35 +00:00
rmcilroy
e4d5a446a8 [Interpreter] Pass CompileInfo to BytecodeGenerator's constructor.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35622}
2016-04-19 13:23:26 +00:00
clemensh
3e5f45b64b [wasm] Flag WASM code sections as such in the tests
This makes them show up in the stack trace. Otherwise the stack frames
are identified as type STUB, and skipped by the iterator.

R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35621}
2016-04-19 12:55:02 +00:00
hlopko
39939eebf8 Remove isolate arg from EmbedderHeapTracer methods.
As the code on the blink side sits down, we realize we don't need isolate arg
anymore. As the heap tracer is set per isolate, it can actually be confusing if
the isolate passed as argument is always the same as the isolate the heap tracer
was set for. Wdyt?

BUG=468240
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35620}
2016-04-19 12:55:01 +00:00
machenbach
8b3337278f Revert of 🏄 [heap] Add page evacuation mode for new->old (patchset #21 id:800001 of https://codereview.chromium.org/1863983002/ )
Reason for revert:
[Sheriff] Breaks:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/102

Original issue's description:
> [heap] Add page evacuation mode for new->old
>
> In a full mark-compact GC, instead of copying memory to old space for
> pages that have more than X% live bytes, we just move the whole page over to old
> space.
>
> X=70 (default value)
>
> BUG=chromium:581412
> LOG=N
>
> Committed: https://crrev.com/0d7e23a6edd3822970983030a77a5b80cd337911
> Cr-Commit-Position: refs/heads/master@{#35610}

TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:581412

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

Cr-Commit-Position: refs/heads/master@{#35619}
2016-04-19 12:52:47 +00:00
rmcilroy
623ad7de88 [Interpreter] Remove register file register and replace with LoadParentFramePointer.
Removes the register file machine register from the interpreter and
replaces it will loads from the parent frame pointer. As part of this
change the raw operand values for register values changes to enable the
interpreter to keep using the operand value as the offset from the
parent frame pointer.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35618}
2016-04-19 12:48:41 +00:00
clemensh
09b50113d4 Move two test-internal functions up to header file
... such that they can be reused from other tests.

R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35617}
2016-04-19 12:24:39 +00:00
verwaest
473280f82a Create per-descriptor-index LoadApiGetterStub
This avoids custom compilation of receiver handlers for api getters.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35616}
2016-04-19 12:12:45 +00:00
clemensh
9be47f57a0 [wasm] Do also output WASM frames on detailed stack traces
Till now, they were just skipped. With this patch, they now show up in
the DevTools on uncaught Errors with function name <WASM> and no line
number or file name information (see new test case:
https://chromiumcodereview.appspot.com/1875083002).

R=jfb@chromium.org, titzer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35615}
2016-04-19 11:56:47 +00:00
machenbach
9c927d0f01 [test] Set default locale in test runner
BUG=v8:4437,v8:2899,chromium:604310
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35614}
2016-04-19 11:27:08 +00:00
akos.palfi
efadbfc458 MIPS: [Atomics] Remove Atomics code stubs; use TF ops.
Port d412cfa26c

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35613}
2016-04-19 11:22:50 +00:00
mstarzinger
08ef00fd06 [compiler] Reuse parse info when ensuring deopt support.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35612}
2016-04-19 11:20:43 +00:00
zhengxing.li
5b822b31fe X87: Change calling convention of CallApiGetterStub to accept the AccessorInfo.
port d2b0a4b727 (r35606)

  original commit message:
  MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35611}
2016-04-19 10:21:04 +00:00
mlippautz
0d7e23a6ed [heap] Add page evacuation mode for new->old
In a full mark-compact GC, instead of copying memory to old space for
pages that have more than X% live bytes, we just move the whole page over to old
space.

X=70 (default value)

BUG=chromium:581412
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35610}
2016-04-19 10:09:11 +00:00
mstarzinger
d784c2d1ea [compiler] Remove remnants for old-skool live edit.
This removes obsolete code that supports compiling without a shared
function info object. Even for top-level code compiled for live edit
such an object is allocated by now.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35609}
2016-04-19 09:33:08 +00:00
jarin
3a69613481 [turbofan] Remove mutual recursion in typed-lowering of JSToNumber input.
The recursion does seem to help anything.

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

Cr-Commit-Position: refs/heads/master@{#35608}
2016-04-19 09:07:01 +00:00
ishell
28113880e3 Fix polymorphic keyed load handler selection for proxies.
BUG=chromium:603463
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35607}
2016-04-19 08:58:43 +00:00
verwaest
d2b0a4b727 Change calling convention of CallApiGetterStub to accept the AccessorInfo
MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>

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

Cr-Commit-Position: refs/heads/master@{#35606}
2016-04-19 08:46:28 +00:00
mstarzinger
489d751efd [compiler] Switch code printing to not use literal.
This switches CodeGenerator::PrintCode to be based on the allocated
shared function info instead of the function literal. This is possible
now that even live edit allocates a shared function info for scripts.

R=ishell@chromium.org
BUG=chromium:604375
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35605}
2016-04-19 08:00:47 +00:00
mlippautz
19c1a10ba0 Add ObjectVisitor template parameter to RelocInfo::Visit
This makes IterateBodyFast work without requiring visitors to inherit from ObjectVisitor.

R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35604}
2016-04-19 07:06:57 +00:00
zhengxing.li
ce3f9afaba X87: [Atomics] Remove Atomics code stubs; use TF ops.
port d412cfa26c (r35596)

  original commit message:
  Reland of (https://codereview.chromium.org/1891033002)

  This is a much cleaner solution, which won't require nearly as much
  architecture-specific code. Thanks bmeurer@!

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35603}
2016-04-19 06:35:13 +00:00
zhengxing.li
d878eb7ec2 X87: First version of the new generators implementation.
port d0ccddd032 (r35584)

  original commit message:
  Behind --ignition-generators. Does not yet support Turbofan.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35602}
2016-04-19 06:15:15 +00:00
mtrofin
7bb766978b [turbofan] Fixes to validator
If we have 2 phis with the exact same operand list, and the first phi is
used before the second one, via the operand incoming to the block
that defines the phi, and the second one's operand is defined (via a
parallel move) after the use, then the original operand will be assigned
to the first phi. This will lead to a spurious validation error.

To fix this, we look at the original pending assessment.

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

Cr-Commit-Position: refs/heads/master@{#35601}
2016-04-19 04:26:32 +00:00
bjaideep
9ff4a69147 PPC: First version of the new generators implementation.
Port d0ccddd032

Original commit message:
       First version of the new generators implementation.

       Behind --ignition-generators. Does not yet support Turbofan.

R=neis@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, jyan@ca.ibm.com
BUG=v8:4907
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35600}
2016-04-18 22:50:07 +00:00
adamk
8292435baa Revert of 32-bit linux: Force 16-byte stack alignment. (patchset #1 id:1 of https://codereview.chromium.org/1899783002/ )
Reason for revert:
Broke InterpreterCreateArguments test on Linux nosnap debug:

https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/6404

Original issue's description:
> 32-bit linux: Force 16-byte stack alignment.
>
> clang assumes 16-byte stack alignment, but incoming stack alignment isn't
> always guaranteed to be that way.  It looks like v8 was lucky to not hit
> this so far.
>
> See https://crbug.com/418554 -- this makes v8's standalone config match
> Chromium.  See also https://llvm.org/bugs/show_bug.cgi?id=21414
>
> Maybe it's possible to change the caller of OnEntryHook() to guarantee
> the right alignment, but matching Chromium's build flags here seems like
> a good idea in general.
>
> BUG=v8:4928
> LOG=n
>
> Committed: https://crrev.com/3afb3324941625559635380ef98a2ee73e370a0a
> Cr-Commit-Position: refs/heads/master@{#35597}

TBR=machenbach@chromium.org,rnk@chromium.org,thakis@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4928

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

Cr-Commit-Position: refs/heads/master@{#35599}
2016-04-18 22:01:43 +00:00
titzer
37ad3aa9c4 [wasm] Introduce Encoder::GetLocal and Encoder::SetLocal utilities.
R=bradnelson@chromium.org,aseemgarg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35598}
2016-04-18 20:57:44 +00:00
thakis
3afb332494 32-bit linux: Force 16-byte stack alignment.
clang assumes 16-byte stack alignment, but incoming stack alignment isn't
always guaranteed to be that way.  It looks like v8 was lucky to not hit
this so far.

See https://crbug.com/418554 -- this makes v8's standalone config match
Chromium.  See also https://llvm.org/bugs/show_bug.cgi?id=21414

Maybe it's possible to change the caller of OnEntryHook() to guarantee
the right alignment, but matching Chromium's build flags here seems like
a good idea in general.

BUG=v8:4928
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35597}
2016-04-18 20:19:36 +00:00
binji
d412cfa26c [Atomics] Remove Atomics code stubs; use TF ops
Reland of (https://codereview.chromium.org/1891033002)

This is a much cleaner solution, which won't require nearly as much
architecture-specific code. Thanks bmeurer@!

BUG=v8:4614
LOG=y
TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35596}
2016-04-18 19:43:32 +00:00
jyan
7d9f917d65 S390: Correctly annotate eval origin.
Port 89d7bfda0d

Original commit message:
        There were a couple of issues with it:
        - interpreter is not supported
        - the source position was just accidentally correct for full-codegen
        - the eval origin could have been cached

        Also fixes a few other places to use AbstractCode.

R=yangguo@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35595}
2016-04-18 18:11:47 +00:00
hlopko
be9b87aafc Polish EmbedderHeapTracer and move some checks from blink to v8
Quick one, ptal.

BUG=468240
LOG=no

Committed: https://crrev.com/0eae5650dec265e961a1024fd2090301f2cdca16
Cr-Commit-Position: refs/heads/master@{#35578}

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

Cr-Commit-Position: refs/heads/master@{#35594}
2016-04-18 17:59:50 +00:00
caitpotter88
1913de8047 [es7] ship --harmony-exponentiation-operator
Change --harmony-exponentiation-operator to be enabled by default.

Intent-to-Ship: https://groups.google.com/forum/#!topic/v8-users/W6rKEsdQHXE

BUG=v8:3915
LOG=N
R=adamk@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35593}
2016-04-18 17:55:37 +00:00
akos.palfi
57e2eec996 MIPS64: Fix 'Migrate FastCloneShallowObjectStub to TurboFan'
Port 5325379982

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35592}
2016-04-18 17:51:31 +00:00
balazs.kilvady
6903ecbf24 MIPS: Use portable Printf formats.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35591}
2016-04-18 16:37:39 +00:00
mstarzinger
1041340220 [compiler] Let CompileForLiveEdit use common pipeline.
This makes sure that the Compiler::CompileForLiveEdit API function uses
the common pipeline for top-level code. It ensures that a proper shared
function info object is allocated before compilation is triggered.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35590}
2016-04-18 16:17:26 +00:00
jyan
4b2b34f118 S390: [simulator] Initial 2-level jump table implementation
The old switch-case instruction decode implementation results in a
sparse table, which is not resolved by a fast jump table routing.
Therefore, it is really slow in instruction decoding phase.

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

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

Cr-Commit-Position: refs/heads/master@{#35589}
2016-04-18 16:15:06 +00:00
mstarzinger
8c6f18aa04 [compiler] Workaround in code printing without literal.
R=ishell@chromium.org
BUG=chromium:604375
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35588}
2016-04-18 16:05:04 +00:00
bjaideep
306add32e5 PPC: Correctly annotate eval origin.
Port 89d7bfda0d

Original commit message:
        There were a couple of issues with it:
        - interpreter is not supported
        - the source position was just accidentally correct for full-codegen
        - the eval origin could have been cached

        Also fixes a few other places to use AbstractCode.

R=yangguo@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, jyan@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35587}
2016-04-18 15:25:03 +00:00
rmcilroy
4e4fa66fa1 [Interpreter] Avoid binding bytecode_array to a variable in CallEpilogue
Binding bytecode_array to a CodeStubAssembler variable in CallEpilogue
was causing issues with the approach to inline code stubs into
interpreter bytecode handlers. Instead of doing this, just keep track of
whether a call has been made, and if so reload directly from the stack
frame when necessary.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35586}
2016-04-18 15:25:02 +00:00
ssanfilippo
5110f6c881 [Interpreter] Always show misattributed samples in linux_perf_report.py
Misattributed samples are strictly related to handlers, and the size
of this special group helps understand how accurate the profile is.
For these reasons, it makes more sense to always show this group.

LOG=N
BUG=v8:4899

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

Cr-Commit-Position: refs/heads/master@{#35585}
2016-04-18 15:07:20 +00:00
neis
d0ccddd032 First version of the new generators implementation.
Behind --ignition-generators. Does not yet support Turbofan.

TBR=bmeurer@chromium.org
BUG=v8:4907
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35584}
2016-04-18 14:13:30 +00:00
mstarzinger
e9dfcf4f0c [compiler] Introduce common structure to compile methods.
This should be a plain refactoring change with only negligible changes
to method semantics. The main aim is to improve readability of some API
method implementations.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35583}
2016-04-18 14:13:29 +00:00
jyan
5292d8b91c S390: Fix popcnt64 should use lgbr for final dst.
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35582}
2016-04-18 14:11:20 +00:00
yangguo
89d7bfda0d Correctly annotate eval origin.
There were a couple of issues with it:
- interpreter is not supported
- the source position was just accidentally correct for full-codegen
- the eval origin could have been cached

Also fixes a few other places to use AbstractCode.

R=mstarzinger@chromium.org

Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d
Cr-Commit-Position: refs/heads/master@{#35257}

Committed: https://crrev.com/ad4e8a27963b704bb70ec8bac0991c57296b1d16
Cr-Commit-Position: refs/heads/master@{#35481}

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

Cr-Commit-Position: refs/heads/master@{#35581}
2016-04-18 13:21:07 +00:00
mstarzinger
31e4644682 [compiler] Remove obsolete CompileUnoptimizedCode helper.
This removes the helper function in question that side-steps the
interpreter without going through the canonical UseIgnition predicate.
Having such a function is dangerous as it hides paths that are not yet
covered by the interpreter (like live edit in this case).

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35580}
2016-04-18 13:07:29 +00:00
mstarzinger
e2ff7d121d [compiler] Simplify Compiler::CompileDebugCode a bit.
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35579}
2016-04-18 12:59:26 +00:00
hlopko
0eae5650de Polish EmbedderHeapTracer and move some checks from blink to v8
Quick one, ptal.

BUG=468240
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35578}
2016-04-18 12:39:25 +00:00
bmeurer
a36ff8f020 [turbofan] Lower HeapNumber allocations to Allocate nodes.
First step towards unifying the allocation story in TurboFan.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35577}
2016-04-18 12:00:08 +00:00