Commit Graph

31388 Commits

Author SHA1 Message Date
machenbach
87affbc531 [gn] Fix isolate_driver for gn
This makes the isolate-driver script rebase all paths to be
relative to the isolate-file location. This is an assumption
of the go binaries and is needed for batcharchive to work.

In gyp, actions were executed relative to the gyp file that
specified them, while in gn it's relative to the product dir.

BUG=chromium:474921

Review-Url: https://codereview.chromium.org/2039873002
Cr-Commit-Position: refs/heads/master@{#36746}
2016-06-06 13:25:04 +00:00
cbruni
fb9ce9373b [tools] Update callstats.[py|html]
BUG=

Review-Url: https://codereview.chromium.org/2040823003
Cr-Commit-Position: refs/heads/master@{#36745}
2016-06-06 13:08:47 +00:00
cbruni
bc0798ca1a Introduce IsUndefined(Isolate*) and IsTheHole(Isolate*)
Passing in the isolate and pointer compare the instnance against the
corresponding constant is always faster than decoding the instance types.

BUG=

Review-Url: https://codereview.chromium.org/2028983002
Cr-Commit-Position: refs/heads/master@{#36744}
2016-06-06 13:00:49 +00:00
mstarzinger
826627d9fd [turbofan] Make FindFrameStateBefore handle dead paths.
This makes sure {NodeProperties::FindFrameStateBefore} can deal with
effect chains that are marked as dead. This can happen when reducers
looking for frame states run together with other reducers killing some
execution paths within the same reduction phase.

R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-617567
BUG=chromium:617567,chromium:617224

Review-Url: https://codereview.chromium.org/2041833002
Cr-Commit-Position: refs/heads/master@{#36743}
2016-06-06 12:34:53 +00:00
epertoso
c99caf307b Provide a tagged allocation top pointer.
Taking over http://crrev.com/1924223002.

BUG=chromium:606711
LOG=N

Committed: https://crrev.com/f42c9e93c80fdf57e8f92bb87f6ed927d0ae4028
Review-Url: https://codereview.chromium.org/2028633002
Cr-Original-Commit-Position: refs/heads/master@{#36633}
Cr-Commit-Position: refs/heads/master@{#36742}
2016-06-06 12:31:54 +00:00
machenbach
0e2d92967d Revert of [build] Use sysroot for linux compilation with clang (patchset #5 id:80001 of https://codereview.chromium.org/2028623002/ )
Reason for revert:
sysroot logic breaks "make arm"

Original issue's description:
> [build] Use sysroot for linux compilation with clang
>
> This ports the configuration for using a sysroot from
> chromium's common.gypi.
>
> This is restricted to clang only.
>
> BUG=chromium:474921, chromium:616032
> LOG=y
>
> Committed: https://crrev.com/c47d3c63695d2999752f5fc61ff171f3ff100553
> Cr-Commit-Position: refs/heads/master@{#36729}

TBR=jochen@chromium.org,vogelheim@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:474921, chromium:616032

Review-Url: https://codereview.chromium.org/2042693003
Cr-Commit-Position: refs/heads/master@{#36741}
2016-06-06 11:04:26 +00:00
machenbach
46d8293f50 Revert of [build] Fix default for target_arch (patchset #1 id:1 of https://codereview.chromium.org/2040803005/ )
Reason for revert:
sysroot logic breaks "make arm"

Original issue's description:
> [build] Fix default for target_arch
>
> Fix after https://codereview.chromium.org/2028623002/
>
> BUG=chromium:474921, chromium:616032
> TBR=vogelheim@chromium.org, jochen@chromium.org
> NOTRY=true
>
> Committed: https://crrev.com/9dcb67dd174fefc98f9c964ef54fed8fe6feb224
> Cr-Commit-Position: refs/heads/master@{#36733}

TBR=vogelheim@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:474921, chromium:616032

Review-Url: https://codereview.chromium.org/2039853002
Cr-Commit-Position: refs/heads/master@{#36740}
2016-06-06 11:01:42 +00:00
titzer
585771f264 [wasm] Move 64-bit call tests into test-run-wasm-64.cc so they also run on 32-bit platforms.
This duplicates some test code (which hopefully can be factored out later), but increases
test coverage.

R=ahaas@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2042773002
Cr-Commit-Position: refs/heads/master@{#36739}
2016-06-06 10:59:04 +00:00
epertoso
36807f064a [crankshaft] Fix DoDeferredMathAbsTaggedHeapNumber overwriting the context with some temporary value.
BUG=v8:5067

Review-Url: https://codereview.chromium.org/2033413002
Cr-Commit-Position: refs/heads/master@{#36738}
2016-06-06 10:11:03 +00:00
v8-autoroll
f3694aca11 Update V8 DEPS.
Rolling v8/build to 9f3f50f2d8b3b751c451c76d9bbf648835256dd5

Rolling v8/third_party/icu to ffa4b6704cf5cc9fec9485731f24a05b2ba94bca

Rolling v8/tools/clang to 27056571d3878fee640fe0e3f1b8ba5e9a7570f6

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

Review-Url: https://codereview.chromium.org/2041803002
Cr-Commit-Position: refs/heads/master@{#36737}
2016-06-06 09:50:06 +00:00
bgeron
0d3413f874 Print MachineTypes when using --trace-turbo-graph.
Previously, ZoneVector<MachineType>* printed just as a pointer; now we
print each MachineType in it, separated by commas.

BUG=

Review-Url: https://codereview.chromium.org/2030323002
Cr-Commit-Position: refs/heads/master@{#36736}
2016-06-06 09:47:10 +00:00
mstarzinger
960a87bbd5 [runtime] Remove RUNTIME_ASSERT_HANDLIFIED.
This removes the macro in question form the utility header. In the long
run we want to convert all RUNTIME_ASSERTs to CHECKs, now that runtime
functions are no longer fuzzed directly. This is just a first step.

R=bmeurer@chromium.org
BUG=v8:5066

Review-Url: https://codereview.chromium.org/2038013002
Cr-Commit-Position: refs/heads/master@{#36735}
2016-06-06 09:29:03 +00:00
neis
6ddd8314a5 [compiler] Deal with some old TODOs in the typer.
This is mostly about DCHECKs. Enabling some requires a few
changes to tests that were not careful about types.

BUG=

Review-Url: https://codereview.chromium.org/2033703002
Cr-Commit-Position: refs/heads/master@{#36734}
2016-06-06 09:18:30 +00:00
machenbach
9dcb67dd17 [build] Fix default for target_arch
Fix after https://codereview.chromium.org/2028623002/

BUG=chromium:474921, chromium:616032
TBR=vogelheim@chromium.org, jochen@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2040803005
Cr-Commit-Position: refs/heads/master@{#36733}
2016-06-06 09:12:43 +00:00
neis
e33b7421f7 [test] Fix result regexp in JSTests.json.
R=machenbach@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2035313003
Cr-Commit-Position: refs/heads/master@{#36732}
2016-06-06 09:07:33 +00:00
machenbach
0d65554c05 [gn] Port test262 archiving to gn
This calls the action that archives test262 in gn. In gn
we can't specify an action output outside the product
directory. This works around it with an extra action
stamp file in the product directory, while the archive
remains in the test directory.

We don't want to generate the archive in the product
directory, as some legacy archiving scripts might include
it and it's too large. It should only be included in the
swarming tasks that are going to use it for testing.

BUG=chromium:474921

Review-Url: https://codereview.chromium.org/2034713005
Cr-Commit-Position: refs/heads/master@{#36731}
2016-06-06 08:56:58 +00:00
machenbach
8ee22392f8 [build] Roll android_tools to 04c2c06
This ports:
https://codereview.chromium.org/1991343002

BUG=chromium:599327

Review-Url: https://codereview.chromium.org/2040913002
Cr-Commit-Position: refs/heads/master@{#36730}
2016-06-06 08:48:59 +00:00
machenbach
c47d3c6369 [build] Use sysroot for linux compilation with clang
This ports the configuration for using a sysroot from
chromium's common.gypi.

This is restricted to clang only.

BUG=chromium:474921, chromium:616032
LOG=y

Review-Url: https://codereview.chromium.org/2028623002
Cr-Commit-Position: refs/heads/master@{#36729}
2016-06-06 08:41:03 +00:00
zhengxing.li
1763a9e5f3 X87: [debug] implement intuitive semantics for stepping over await call.
port 8d90210a1e (r36718)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2039743002
Cr-Commit-Position: refs/heads/master@{#36728}
2016-06-06 03:09:00 +00:00
zhengxing.li
973823e454 X87: [builtins] Migrate Math.log to TurboFan.
port f2da19fe39 (r36703)

  original commit message:
  Introduce a dedicated Float64Log machine operator, that is either
  implemented by a direct C call or by platform specific code, i.e.
  using the FPU on x64 and ia32.

  This operator is used to implement Math.log as a proper TurboFan
  builtin on top of the CodeStubAssembler.

  Also introduce a NumberLog simplified operator on top of Float64Log
  and use that for the fast inline path of Math.log inside TurboFan
  optimized code.

BUG=

Review-Url: https://codereview.chromium.org/2034393002
Cr-Commit-Position: refs/heads/master@{#36727}
2016-06-06 03:01:11 +00:00
oth
ecd4086cf0 [interpreter] Faster and fewer flushes in register optimizer.
This change requires a single pass over the register set during
bytecode pipeline flushes.

A few bytecode tests are updated too because the order of register
flushes is different.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2033013002
Cr-Commit-Position: refs/heads/master@{#36726}
2016-06-04 09:48:06 +00:00
brucedawson
ac03c63c28 Add standard Windows manifest to five v8 executables
Many executables are missing embedded manifest files when built with gn.
This causes OS compatibility information to be omitted which can lead
to strange behavior. This change adds a manifest to:

  v8_simple_json_fuzzer.exe
  v8_simple_parser_fuzzer.exe
  v8_simple_regexp_fuzzer.exe
  v8_simple_wasm_asmjs_fuzzer.exe
  v8_simple_wasm_fuzzer.exe

BUG=chromium:602505

Review-Url: https://codereview.chromium.org/2040623003
Cr-Commit-Position: refs/heads/master@{#36725}
2016-06-04 06:29:46 +00:00
jyan
00c158a65c S390: [builtins] Migrate Math.log to TurboFan.
Port f2da19fe39

Original commit message:

    Introduce a dedicated Float64Log machine operator, that is either
    implemented by a direct C call or by platform specific code, i.e.
    using the FPU on x64 and ia32.

    This operator is used to implement Math.log as a proper TurboFan
    builtin on top of the CodeStubAssembler.

    Also introduce a NumberLog simplified operator on top of Float64Log
    and use that for the fast inline path of Math.log inside TurboFan
    optimized code.

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

Review-Url: https://codereview.chromium.org/2033353003
Cr-Commit-Position: refs/heads/master@{#36724}
2016-06-04 02:24:54 +00:00
adamk
4cc2a73185 [cleanup] Inline HAS_INDEX macro as it's trivially the 'in' operator
R=cbruni@chromium.org

Review-Url: https://codereview.chromium.org/2037153002
Cr-Commit-Position: refs/heads/master@{#36723}
2016-06-03 20:09:20 +00:00
bmeurer
e3c3be36ee [json] Repair JSON.parse regression with non-sequential strings.
Make sure to flatten strings first in JSON.parse() builtins, otherwise
we always hit the slow path for non-sequential strings, i.e. for cons
strings.

Also don't create any arguments adaptor frames for JSON.parse() as the
C++ builtin can handle any number of inputs properly.

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2039553002
Cr-Commit-Position: refs/heads/master@{#36722}
2016-06-03 18:42:29 +00:00
adamk
611257fbb1 [es7] Array.prototype.includes should be unscopable
R=littledan@chromium.org
BUG=v8:5059

Review-Url: https://codereview.chromium.org/2033263002
Cr-Commit-Position: refs/heads/master@{#36721}
2016-06-03 18:30:10 +00:00
bjaideep
0ed27704f6 PPC: [builtins] Migrate Math.log to TurboFan.
Port f2da19fe39

Original commit message:

    Introduce a dedicated Float64Log machine operator, that is either
    implemented by a direct C call or by platform specific code, i.e.
    using the FPU on x64 and ia32.

    This operator is used to implement Math.log as a proper TurboFan
    builtin on top of the CodeStubAssembler.

    Also introduce a NumberLog simplified operator on top of Float64Log
    and use that for the fast inline path of Math.log inside TurboFan
    optimized code.

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

BUG=v8:5065
LOG=N

Review-Url: https://codereview.chromium.org/2036273002
Cr-Commit-Position: refs/heads/master@{#36720}
2016-06-03 16:49:30 +00:00
balazs.kilvady
b9ded4ce9c MIPS: Fix 'Turbofan: Modify WASM linkage to store floats using only 4 bytes.'
Port 817b59c8ad

Adds instructions for MIPS to push float (single) and double registers.

LOG=N
BUG=v8:4124
TEST=cctest/test-run-native-calls/Float32Select_stack_params_return_reg,
cctest/test-run-native-calls/MixedParams_0, cctest/test-run-native-calls/MixedParams_1,
cctest/test-run-native-calls/MixedParams_2, cctest/test-run-native-calls/MixedParams_3

Review-Url: https://codereview.chromium.org/2038813002
Cr-Commit-Position: refs/heads/master@{#36719}
2016-06-03 16:44:16 +00:00
yangguo
8d90210a1e [debug] implement intuitive semantics for stepping over await call.
R=*bmeurer@chromium.org, caitpotter88@gmail.com, *littledan@chromium.org, *ulan@chromium.org
BUG=v8:4483

Review-Url: https://codereview.chromium.org/2033223003
Cr-Commit-Position: refs/heads/master@{#36718}
2016-06-03 15:31:52 +00:00
gsathya
cfe77e1317 Promises: Reorder heap symbols alphabetically
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/2037943002
Cr-Commit-Position: refs/heads/master@{#36717}
2016-06-03 15:16:28 +00:00
rmcilroy
de9d1d8bc6 [Interpreter] Move jump processing to bytecode array writer.
This moves processing of jumps out of bytecode array builder and into
bytecode array writer. This simplifies the pipeline by avoiding having
to flush for offset and patch up offsets in bytecode array builder based
on what was emitted by the bytecode array writer.

This also enables future refactorings to add dead code elimination back
into the pipeline, and move processing of scalable operand sizes to the
end of the pipeline (in the bytecode array writer) rather than having to
deal with scalable operand types throughout pipeline.

BUG=v8:4280,chromium:616064

Review-Url: https://codereview.chromium.org/2035813002
Cr-Commit-Position: refs/heads/master@{#36716}
2016-06-03 14:53:23 +00:00
bbudge
a09fb95bc0 [deoptimizer] Support float registers and slots.
LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2031873002
Cr-Commit-Position: refs/heads/master@{#36715}
2016-06-03 14:16:55 +00:00
machenbach
976a62acd1 [gn] Add swarming support for all test targets
This adds corresponding *_run targets for all swarming
isolate actions existing in gyp. This also wires all
targets together under gn_all.

BUG=chromium:474921
NOTRY=true

Review-Url: https://codereview.chromium.org/2033813004
Cr-Commit-Position: refs/heads/master@{#36714}
2016-06-03 13:48:44 +00:00
machenbach
63526069c2 [gn] Add fuzzer targets.
This adds the v8-side fuzzer executables for smoke testing.
This also renames the old gyp targets to stay consistent
with chromium.

Naming convention for type X after the rename:
library: X_fuzzer (gn), X_fuzzer_lib (gyp)
executable v8: v8_simple_X_fuzzer
executable chromium: v8_X_fuzzer

BUG=chromium:474921

Review-Url: https://codereview.chromium.org/2032363002
Cr-Commit-Position: refs/heads/master@{#36713}
2016-06-03 13:12:58 +00:00
bbudge
39442cf714 Add FloatRegister names to RegisterConfiguration.
- Adds names for float registers to RegisterConfiguration and uses them
when we have the MachineRepresentation.

LOG=N
BUG=v8:4124

Review-Url: https://codereview.chromium.org/2030143002
Cr-Commit-Position: refs/heads/master@{#36712}
2016-06-03 13:02:13 +00:00
yangguo
2d5c9be331 [debugger] add test case for debug-evaluation with promise microtasks.
R=littledan@chromium.org

Review-Url: https://codereview.chromium.org/2021013002
Cr-Commit-Position: refs/heads/master@{#36711}
2016-06-03 12:07:41 +00:00
mstarzinger
10284b2948 [turbofan] Add frame state propagation to linearizer.
This implements propagation of frame states from checkpoints to all
deoptimization points inserted by the EffectControlLinearizer. It also
allows us to remove the eager frame state input from all the checked
conversion operations.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2033143002
Cr-Commit-Position: refs/heads/master@{#36710}
2016-06-03 11:39:35 +00:00
ahaas
9fbf9e2880 [wasm] Use MachineOperator::Float64Log to implement kExprF64Log.
R=titzer@chromium.org, bmeurer@chromium.org

BUG=v8:5065

Review-Url: https://codereview.chromium.org/2036143002
Cr-Commit-Position: refs/heads/master@{#36709}
2016-06-03 11:11:29 +00:00
rmcilroy
23ca1e8270 Add Ignition perf benchmarks to try_perf.py
BUG=v8:4280
NOTRY=true

Review-Url: https://codereview.chromium.org/2033393002
Cr-Commit-Position: refs/heads/master@{#36708}
2016-06-03 11:06:22 +00:00
rmcilroy
f4cf05fc01 [Interpreter] Add intrinsics for Is<Type> calls.
Add intrinsics for IsSmi, IsTypedArray, IsRegExp and IsJSProxy,
all of which are intrinsics in Full-Codegen.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2034493002
Cr-Commit-Position: refs/heads/master@{#36707}
2016-06-03 10:56:01 +00:00
rmcilroy
dffbcfe8eb Disable flaky JsNativeJsSample on Ignition.
BUG=v8:4751
TBR=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/2033773003
Cr-Commit-Position: refs/heads/master@{#36706}
2016-06-03 10:53:03 +00:00
mstarzinger
28e6753acc [turbofan] Remove frame state input from speculative ops.
These speculative binary operators are simplified operators and should
not need a frame state themselves. These eager bailout points can by now
be found via checkpoints in the graph, whereas frame states attached to
nodes directly should always represent lazy bailout points.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2037673002
Cr-Commit-Position: refs/heads/master@{#36705}
2016-06-03 10:02:04 +00:00
zhengxing.li
486f8dd899 X87: Turbofan: Modify WASM linkage to store floats using only 4 bytes.
port 817b59c8ad (r36654)

  original commit message:
  Adds instructions for ARM to push floats.

BUG=

Review-Url: https://codereview.chromium.org/2036773004
Cr-Commit-Position: refs/heads/master@{#36704}
2016-06-03 09:51:34 +00:00
bmeurer
f2da19fe39 [builtins] Migrate Math.log to TurboFan.
Introduce a dedicated Float64Log machine operator, that is either
implemented by a direct C call or by platform specific code, i.e.
using the FPU on x64 and ia32.

This operator is used to implement Math.log as a proper TurboFan
builtin on top of the CodeStubAssembler.

Also introduce a NumberLog simplified operator on top of Float64Log
and use that for the fast inline path of Math.log inside TurboFan
optimized code.

BUG=v8:5065

Review-Url: https://codereview.chromium.org/2029413005
Cr-Commit-Position: refs/heads/master@{#36703}
2016-06-03 09:48:25 +00:00
zhengxing.li
c2ce1bf2ab X87: [Interpreter] Fix GenerateSmiToDouble to avoid assuming it is called from a JSFrame.
port 471893ccec (r36649)

  original commit message:
  GenerateSmiToDouble on ia32 assumes that it is called from a JSFrame and can restore
  the context from the StandardFrameConstants::kContextObject. In the case of the
  interpreter it is called from a interpreter handler stub frame which doesn't
  push the context onto it's frame. Instead, push and pop esi to explicitly restore it
  correctly.

BUG=

Review-Url: https://codereview.chromium.org/2036083003
Cr-Commit-Position: refs/heads/master@{#36702}
2016-06-03 09:38:02 +00:00
zhengxing.li
4089330cd5 X87: VectorICs: Remove special code to increment call counts by two.
port 63ea3a5009 (r36599)

  original commit message:
  Previously, we used the lowest bit for something else.

BUG=

Review-Url: https://codereview.chromium.org/2032063003
Cr-Commit-Position: refs/heads/master@{#36701}
2016-06-03 09:25:17 +00:00
zhengxing.li
82bce6a9fc X87: IC: Eliminate initialization_state as a factor in IC installation.
port 56d90782a5 (r36597)

  original commit message:
  In Crankshaft, we would install special ICs that didn't need a vector and slot
  in the MEGAMORPHIC case. This optimization limits our hand against future
  improvements.

BUG=

Review-Url: https://codereview.chromium.org/2030303002
Cr-Commit-Position: refs/heads/master@{#36700}
2016-06-03 09:25:16 +00:00
mstarzinger
bf7034bfed [turbofan] Remove eager frame state from property access.
This removes the frame state input representing the before-state from
nodes performing property accesses. These frame states can by now be
found via checkpoints in the graph.

R=jarin@chromium.org
BUG=v8:5021

Review-Url: https://codereview.chromium.org/2034673002
Cr-Commit-Position: refs/heads/master@{#36699}
2016-06-03 08:59:32 +00:00
Miran.Karic
16dda2152f Fix bytecode operand type
A value in unittests/Bytecodes.DecodeBytecodeAndOperands was 16 bit
instead of 8 bit. This was causing test to fail on big endian machines.

BUG=

Review-Url: https://codereview.chromium.org/2030063002
Cr-Commit-Position: refs/heads/master@{#36698}
2016-06-03 08:36:30 +00:00
zhengxing.li
22a73e0d85 X87: Temporary workaround for X87 FPU convert SNaN to QNaN automatically issue.
x87 FPU converts the SNaN to QNaN automatically when loading SNaN from memmory. This function caused v8 x87 port can't distinguish the
  Hole NaN (V8 used SNaN for it) from Javascript visible NaNs (V8 used QNaN for it).

  Many test cases failed in this function for v8 x87 port. It's a big effort to refactor all code of x87 FPU loads value from memmory to
  fix this issue.

  So here's a temporary workaround for it, what's this CL does are:
  1. Removed all previous x87 workaround of this issue.
  2. Used SNaN of MIPS which is a not used QNaN in v8 x87 port as the Hole NaN for v8 x87 port.
  3. This CL is only local to x87 port.

BUG=

Review-Url: https://codereview.chromium.org/2033133004
Cr-Commit-Position: refs/heads/master@{#36697}
2016-06-03 08:33:50 +00:00