Commit Graph

26635 Commits

Author SHA1 Message Date
mstarzinger
f27d2e593f [turbofan] Fix inlining with --trace-turbo flag.
This makes sure that --trace-turbo or --turbo-source-positions does not
completely disable inlining. The recent introduction of a finalization
interface to the reducer borked the SourcePositionWrapper reducer.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31893}
2015-11-09 16:44:16 +00:00
ishell
2ed1749091 Establish an invariant on initial maps:
1) they always own descriptors,
2) the number of own descriptors is equal to the number of descriptors in the descriptor array.

This allows an initial map of a subclass to share descriptor array with initial map of the parent class (if it already contains properties).

BUG=chromium:551430
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31892}
2015-11-09 16:27:11 +00:00
rmcilroy
fd6c005982 [Ignition] Skip another failing mjsunittest on ignition.
Skips regress-446389.

BUG=v8:4280
LOG=N
NOTRY=true
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31891}
2015-11-09 16:23:42 +00:00
adamk
9a8c0119ef Properly handle parsing a '%'-prefixed runtime call as a binding pattern
R=rossberg@chromium.org
BUG=chromium:552302
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31890}
2015-11-09 15:32:25 +00:00
rmcilroy
cdc1fe5c3f [Ignition] Fix typo in ignition mjsunit status.
BUG=v8:4280
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31889}
2015-11-09 14:56:07 +00:00
mstarzinger
8daa7215d4 [debugger] Move clearing of optimized code map out of GC.
This moves the clearing of all optimized code maps out of the GC and
into the debugger to where it is actually required. The main goal here
is to simplify the logic in the already complex visitor for our shared
function info objects.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31888}
2015-11-09 14:40:01 +00:00
rmcilroy
54fb5c0da5 [Ignition] Fix typo in ignition test262 status.
BUG=v8:4280
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31887}
2015-11-09 14:38:50 +00:00
rmcilroy
aa858ffbbd [Ignition] Skip some more mjsunit and test262 tests on ignition.
BUG=v8:4280
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#31886}
2015-11-09 14:16:26 +00:00
mstarzinger
ce1720690b [turbofan] Bring back early return in JSInliningHeuristic.
This redcues the noise created by --trace-turbo-inlining when there
actually are no candidates being processed.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31885}
2015-11-09 14:15:12 +00:00
zhengxing.li
9acf00c78d X87: [builtins] Introduce specialized Call/CallFunction builtins.
port 7c3396d01c (r31871)

  original commit message:
  Introduce receiver conversion mode specialization for the Call and
  CallFunction builtins, so we can specialize the builtin functionality
  (actually an optimization only) based on static information from the
  callsite (this is basically a superset of the optimizations that were
  available with the CallFunctionStub and CallICStub, except that these
  optimizations are correct now).

  This fixes a regression introduced by the removal of CallFunctionStub,
  for programs that call a lot.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31884}
2015-11-09 14:05:55 +00:00
jacob.bramley
c701228534 Use a register for the tail call address where appropriate.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31883}
2015-11-09 14:04:42 +00:00
caitpotter88
e63248f6d7 [regexp] remove no-op RegExp.multiline accessor and alias
Remove some non-standard code that doesn't do anything anyways.

While FireFox uses this to set the default value for the multiline flag,
it is nonstandard and slated for removal. The matching behaviour has
never been implemented in either JSC or V8, so there is little
web-compat risk.

The only possible risk could be someone depending on the ToBoolean()
behaviour of the flag, but this seems unlikely.

BUG=v8:3870
LOG=N
R=adamk@chromium.org, littledan@chromium.org, yangguo@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#31882}
2015-11-09 14:03:26 +00:00
Michael Achenbach
bde296670c Whitespace change to test ignition.
Cr-Commit-Position: refs/heads/master@{#31881}
2015-11-09 13:43:07 +00:00
bmeurer
339f0439e1 [turbofan] Remove unused BuildLoadGlobalProxy from AstGraphBuilder.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31880}
2015-11-09 12:50:28 +00:00
mstarzinger
270be9351c [turbofan] Switch message object manipulation to JSOperator.
This switches loading and storing of the message object within the
Isolate to use JavaScript operators built by the JSOperatorBuilder
instead of machine operators. This is a preparation for a stricter
representation selection for loads and stores.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31879}
2015-11-09 12:44:31 +00:00
balazs.kilvady
bddf8c9e08 MIPS: Adapt long branches to use bc & balc on r6.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31878}
2015-11-09 11:25:24 +00:00
ulan
d763c7d089 Do not print stack-trace for OOM when GC is in progress.
BUG=chromium:553051
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#31877}
2015-11-09 11:07:07 +00:00
mstarzinger
087513d6d4 [heap] Separate out optimized code map processing.
This separates the post-processing step for optimized code maps out of
the CodeFlusher. It uses the complete SharedFunctionInfo::Iterator to
visit all candidates instead of gathering candidates during marking.

Gathering candidates during marking no longer makes sense, now that the
majority of SharedFunctionInfo objects will hold such an optimized code
map. Also it reduces complexity of the implementation. Also conflating
this mechanism with "code flushing" was confusing.

This reverts commit 7f1fb29faa.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31876}
2015-11-09 11:05:51 +00:00
bmeurer
9e9d1cb373 [turbofan] Run inlining within the regular reducer fixpoint.
Introduce Reducer::Finalize, which get's called by the GraphReducer once
all reductions are done, and use this to implement full inlining as part
of the regular reducer fixpoint.

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

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

Cr-Commit-Position: refs/heads/master@{#31875}
2015-11-09 10:54:57 +00:00
jacob.bramley
d7166acd2b [arm64] Fix a GCC build warning.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31874}
2015-11-09 09:34:42 +00:00
bmeurer
2b4cb2a140 [runtime] Drop redundant %CharFromCode runtime entry.
The %StringCharFromCode and %CharFromCode runtime function perform
exactly the same task, so we need only one of them.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31873}
2015-11-09 09:28:24 +00:00
yangguo
742ae613ec Do not switch to two-byte string in String.fromCharCode if avoidable.
R=bmeurer@chromium.org
BUG=v8:4536
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31872}
2015-11-09 08:53:42 +00:00
bmeurer
7c3396d01c [builtins] Introduce specialized Call/CallFunction builtins.
Introduce receiver conversion mode specialization for the Call and
CallFunction builtins, so we can specialize the builtin functionality
(actually an optimization only) based on static information from the
callsite (this is basically a superset of the optimizations that were
available with the CallFunctionStub and CallICStub, except that these
optimizations are correct now).

This fixes a regression introduced by the removal of CallFunctionStub,
for programs that call a lot.

R=yangguo@chromium.org
BUG=chromium:552244
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31871}
2015-11-09 08:48:33 +00:00
jarin
aea89b93d2 [deoptimizer] Fixes to printing, remove unused parameters.
Review URL: https://codereview.chromium.org/1425143008

Cr-Commit-Position: refs/heads/master@{#31870}
2015-11-09 06:08:13 +00:00
mtrofin
ab1d270a72 [assembler] Introduce proper AssemblerBase::Print() for improved debuggability.
While working on frame elision, I wanted to disassemble codegen in the
debugger, as the code generation is progressing. I discovered we had a
 "Print" member on the x64 assembler, without any implementation. I
pulled it up to AssemblerBase and gave it an implementation that
should work for the other architectures.

Also checked that ia32, x87, arm and arm64 assemblers didn't have
such an implementation - free Print.

Arm64 has a naming conflict with the v8::internal::Disassembler. I
renamed the arm64 type with a more specific name.

Opportunistically fixed a bug in the name converter. This debug-time
printer doesn't provide a Code object, which should be OK with the
name converters, by the looks of other APIs there. All this means is that
when using the Print() API, we just get addresses dumped without any
context (like what this address may be - a stub maybe, etc). This seems
fine for the scenario.

There may be other places that assume a Code object. Since this is
a diagnostics-only scenario, for codegen developers, I feel it is
reasonable to fix such other places as we find them.

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

Cr-Commit-Position: refs/heads/master@{#31869}
2015-11-09 05:39:38 +00:00
pkotwicz
be4d1b19df Update v8_external_startup_data_assets for https://codereview.chromium.org/1422793004/
BUG=chromium:547162
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#31868}
2015-11-08 01:44:48 +00:00
ishell
37a9be505a Regression test for JSRegExp literals sharing.
JSRegExp's properties backing stores must not be shared.

BUG=chromium:548580
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31867}
2015-11-07 08:19:27 +00:00
martyn.capewell
eb991c66e5 [turbofan] Use cmn on ARM64 for negated rhs cmp
Use compare-negate instruction if the right-hand input to a compare is a
negate operation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31866}
2015-11-07 07:20:17 +00:00
rmcilroy
859b15cacd [Interpreter]: Fix IC::GetSharedFunctionInfo for the interpreter.
IC::GetSharedFunctionInfo get's the JS frame which called the IC. When the
function is running in the interpreter, there is a Bytecode handler stub
frame between the IC and the JS frame. Modify IC::GetSharedFunctionInfo to
handle this.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31865}
2015-11-06 19:21:33 +00:00
rmcilroy
fb9ad89fea [Interpreter]: Add ignition blacklist to mjsunit.status and test262.status.
Adds a blacklist of tests which are currently unsupported or broken in Ignition to
the mjsunit and test262 test status.

Also removes --ignition-script-filter flag, and adds a
--ignition_fallback_on_eval_and_catch flag which fallsback to fullcodegen for
functions which call eval or contain a catch block.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31864}
2015-11-06 18:52:51 +00:00
adamk
7b556cd24f Split default parameters that require destructuring into their own file
This allows testing the configuration where --harmony-default-parameters
is passed without --harmony-destructuring.

R=rossberg@chromium.org
BUG=v8:2160
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31863}
2015-11-06 15:49:01 +00:00
rmcilroy
e5e1454bad [Interpreter] Add support for new.target
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31862}
2015-11-06 15:46:10 +00:00
yangguo
6e981a32a6 Remove unused RegExp private symbols.
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31861}
2015-11-06 15:25:13 +00:00
mstarzinger
aca2176500 [heap] Make MarkInlinedFunctionsCode visitor private.
Now that the VisitCode visitor is actually marking through to inlined
code objects (as opposed to the VisitJSFunction visitor), we can make
this helper method private again.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31860}
2015-11-06 15:18:24 +00:00
rmcilroy
8c32ef6ee8 [Interpreter] Add support for VisitThisFunction.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31859}
2015-11-06 15:01:03 +00:00
ahaas
39ed694bbd Implemented the Word64Clz TurboFan operator for x64, arm64, and mips64.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31858}
2015-11-06 14:51:20 +00:00
mstarzinger
aac8ee84af [heap] Fix corner case in optimized code map processing.
This fixes a corner case where optimized code could still be reachable
through the optimized code map, even though unoptimized code for any
inlined function might have long been flushed.

R=ulan@chromium.org
TEST=cctest/test-heap/Regress513496
BUG=chromium:513496
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31857}
2015-11-06 14:29:27 +00:00
bmeurer
925a2006f5 [turbofan] Fix wrong parameter indices in JSFrameSpecialization.
We forgot to add the number of arguments parameter in
JSFrameSpecialization, which was added before the context.

R=jarin@chromium.org
BUG=chromium:552304
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#31856}
2015-11-06 13:12:51 +00:00
hablich
17a4e20e0d Revert of [turbofan] Enable general purpose inlining. (patchset #2 id:20001 of https://codereview.chromium.org/1416873007/ )
Reason for revert:
As discussed with Benedikt: Disable --turbo-inlining again because it tanks Jetstream.

Original issue's description:
> [turbofan] Enable general purpose inlining.
>
> R=bmeurer@chromium.org,hablich@chromium.org
> BUG=v8:4493
> LOG=n
>
> Committed: https://crrev.com/161a0462fb0e79f155f3ea085ba774dad99539cb
> Cr-Commit-Position: refs/heads/master@{#31634}

TBR=bmeurer@chromium.org,mstarzinger@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4493

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

Cr-Commit-Position: refs/heads/master@{#31855}
2015-11-06 13:09:46 +00:00
rmcilroy
7c160afd49 [Interpreter] Add test for sloppy mode receiver replacement.
Adds a test that the receiver for sloppy mode functions is replaced with
the global proxy when called with an undefined receiever.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#31854}
2015-11-06 11:13:52 +00:00
ulan
84c961b743 Temporarily revert to non-incremental GC in background tabs to see
if that is responsible for memory regression in UMA.

Related CLs: crrev.com/1420363004, crrev.com/1423453003

TBR=hpayer@chromium.org
BUG=chromium:552305
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#31853}
2015-11-06 11:01:26 +00:00
mstarzinger
cd7c416da4 [serializer] Move clearing of optimized code map out of GC.
This avoids the need to clear optimized code maps within the GC by just
preventing entries being added in the first place, whenever a snapshot
is being constructed. The main goal here is to simplify the logic in the
already complex visitor for our shared function info objects.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31852}
2015-11-06 08:56:15 +00:00
hablich
7627775948 Provide a counter for thrown JavaScript errors per context
This will be used as a data source for an
UMA histogram.

LOG=N
BUG=chromium:546603
R=jochen@chromium.org,yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31851}
2015-11-06 08:08:18 +00:00
ahaas
2c74ec3fec Changed the constructor of BufferedRawMachineAssemblerTester.
This change does not change how the BufferedRawMachineAssemblerTester is
used in tests, but it makes its construction in other constructors (e.g.
in the WasmRunner) cleaner.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#31850}
2015-11-06 07:22:53 +00:00
zhengxing.li
da72ba0b3e X87: Remove receiver conversion from function prologue.
port 4ab1b05d5e (r31826).

  original commit message:
  Depends on https://codereview.chromium.org/1407373007/
  After that CL, all receiver conversion is handled by the call builtin.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31849}
2015-11-06 03:12:37 +00:00
zhengxing.li
018ecfd162 X87: Remove CallFunctionStub, always call through the Call builtin (also from CallIC).
port 44c44521ae (r31823).

  original commit message:
  This fixes receiver conversion since the Call builtin does it correctly.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31848}
2015-11-06 03:11:22 +00:00
paul.lind
1db43a8417 MIPS64: Fix Remove receiver conversion from function prologue.
Use 64-bit load of receiver in 4ab1b05d5e.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#31847}
2015-11-05 23:58:40 +00:00
adamk
2fa4732739 Re-ship @@toStringTag
It was originally shipped in https://crrev.com/eef2b9b09723ba1dae3ec0172341e93e9030ada0,
but was reverted due to poor interaction with Blink.

That interaction seems to be fixed thanks to changes to the V8 API
and to @@toStringTag handling on access-checked objects.

BUG=v8:3502
LOG=y
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.v8:v8_linux_nosnap_rel;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#31846}
2015-11-05 23:47:12 +00:00
akos.palfi
53c46f87da MIPS: Fix unaligned read/write of bytecodes in interpreter.
On MIPS arch, all memory accesses (including halfword)
must be aligned to their native size or an alignment exception occurs.
The kernel will fix this up, but with performance penalty.

TEST=test-bytecode-generator/CallRuntime
BUG=

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

Cr-Commit-Position: refs/heads/master@{#31845}
2015-11-05 23:43:00 +00:00
adamk
2a866bc4dd Stage --harmony-destructuring and --harmony-default-parameters
Since enabling destructuring already implies enabling default parameters,
there's not a good way to separate these two. Luckily, they're both
feature-complete (save for destructuring assignment).

This causes us to pass an additional 24 test262 tests.

BUG=v8:811, v8:2160
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#31844}
2015-11-05 21:40:12 +00:00