Commit Graph

24039 Commits

Author SHA1 Message Date
verwaest
c8211b64cd Distinguish slow from fast sloppy arguments
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29447}
2015-07-02 14:38:53 +00:00
ulan
3f5d39a1d6 Fix memory-leak in default platform implementation of delayed tasks.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29446}
2015-07-02 14:37:32 +00:00
jochen
55f27f7712 Only define V8_USE_EXTERNAL_SNAPSHOT_DATA if we actually use a snapshot
BUG=none
R=vogelheim@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29445}
2015-07-02 14:23:09 +00:00
verwaest
d550e81891 Cleanup API property handling
BUG=v8:4137
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29444}
2015-07-02 13:30:06 +00:00
ulan
65a1d7265a Remove redundant check in GCTracer::SampleAllocation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29443}
2015-07-02 13:28:46 +00:00
erikcorry
5000650bde Reland: Fix logic for incremental marking steps on tenured allocation
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29442}
2015-07-02 13:27:37 +00:00
Michael Achenbach
32cdac53d3 Whitespace change to test build priorities.
Cr-Commit-Position: refs/heads/master@{#29441}
2015-07-02 13:24:32 +00:00
mstarzinger
aaf56d601a Prepare profiler test for try-catch being optimizable.
This is an adaptation of test-profile-generator/BailoutReason to when
try-catch statements are optimizable. They will no longer cause any
bailout reason to be reported.

R=yangguo@chromium.org
TEST=cctest/test-profile-generator/BailoutReason

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

Cr-Commit-Position: refs/heads/master@{#29440}
2015-07-02 09:22:56 +00:00
ishell
3997ae1b46 Remove deprecated v8::Object::TurnOnAccessCheck() from the V8 API.
The only right way to enable access checks is to install access check callbacks on an object template via v8::ObjectTemplate::SetAccessCheckCallbacks(). It does not make sense to enable access checks on an arbitrary object.

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

Cr-Commit-Position: refs/heads/master@{#29439}
2015-07-02 09:05:48 +00:00
danno
a09ae07f3d [turbofan] Inline %_FixedArrayGet intrinsic.
Review URL: https://codereview.chromium.org/1223583003

Cr-Commit-Position: refs/heads/master@{#29438}
2015-07-02 09:04:36 +00:00
dcheng
76ea6ae744 Fix some clang warnings with -Wmissing-braces in v8.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
  STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
  STRUCT s = {};
which also prevents the warning from firing.

BUG=chromium:505297
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29437}
2015-07-02 07:25:59 +00:00
danno
1fa4285e1c [turbofan] Enable tail calls for %_CallRuntime.
This involves:
- Enabling the tail call optimization reducer in all cases.
- Adding an addition flag to CallFunctionParameters to mark call sites
  that can be tail-called enabled.
- Only set the tail-call flag for %_CallFunction.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29436}
2015-07-02 06:20:14 +00:00
martyn.capewell
1297a51e30 [turbofan] Support cmp with shift/extend on ARM64.
Support 32-bit cmp with shift/extend by reusing the existing add/sub shift and
extend code.

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

Cr-Commit-Position: refs/heads/master@{#29435}
2015-07-02 04:32:15 +00:00
chunyang.dai
70502d166f X87: [strong] Implement strong property access semantics.
port 7281f80151 (r29384)

    Fix a bug in R29384.

original commit message:

    Revert "Revert relanded strong property access CL"

    Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.

    This reverts commit 4ac7be5656.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29434}
2015-07-02 04:27:23 +00:00
chunyang.dai
70bb2372a2 X87: Make context register implicit for CallInterfaceDescriptors
port 7015fd2053 (r29402)

original commit message:

    Up until now the context register was listed explicitly in each stub's
    CallInterfaceDescriptor. This was problematic, because it was listed
    first in the list of register parameters--which is fine for Crankshaft,
    which is more or less built to handle the context as the first
    parameter-- but not ideal for TurboFan, which adds the context at
    the end of all function parameters. Now the context register is no
    longer in the register list and can be handled appropriately by both
    compilers. Specifically, this allows the FunctionType specified for
    each CallInterfaceDescriptor to exactly match the parameter register
    list.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29433}
2015-07-02 04:08:33 +00:00
chunyang.dai
a8eff645b4 X87: [turbofan] Add CalleeSavedFPRegisters to CallDescriptor.
port b4275a70eb (r29378)

original commit message:

    This change makes possible to save and restore the FP registers
    in the Prologue and Return parts for the CallAddress kind functions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29432}
2015-07-02 04:02:46 +00:00
v8-autoroll
ce2ee6f71a Update V8 DEPS.
Rolling v8/third_party/icu to 7fe225d77f307fdbe24695179a84336ef95c1253

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29431}
2015-07-02 03:26:19 +00:00
littledan
a1dcac3df7 Include Harmony Array/TypedArray methods unconditionally
Conditionally including Array and TypedArray methods seems to cause
a slowdown in V8 context creation, possibly due to the new code added.

BUG=chromium:504629
R=adamk@chromium.org
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#29430}
2015-07-01 23:10:21 +00:00
erikcorry
a5221d0779 GC. Delay/avoid entering high promotion mode
R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29429}
2015-07-01 17:42:25 +00:00
adamk
e334410340 Remove unused is_class_scope bit from Scope and ScopeInfo
This was added in https://chromium.googlesource.com/v8/v8/+/4a709dd65,
but the only check for it that remained in the final patch is inside
a DCHECK. It appears that the approach for checking use of class names
in methods evolved quite a bit over the review of the original patch.

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

Cr-Commit-Position: refs/heads/master@{#29428}
2015-07-01 17:21:05 +00:00
verwaest
c26e514454 Remove outdated comment
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29427}
2015-07-01 16:49:23 +00:00
binji
ffa6b5fe6c Change d8 Worker API so it takes a string instead of a function.
This is more consistent with the DOM API, and is clearer w.r.t. which values
are available in the lexical environment of the Worker.

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

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

Cr-Commit-Position: refs/heads/master@{#29426}
2015-07-01 16:41:56 +00:00
Djordje.Pesic
2604c75eed MIPS: disabling rsqrt and recip for mips32r1
Disabling rsqrt and recip for mips32r1 in assembler, disassembler and simulator

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

Cr-Commit-Position: refs/heads/master@{#29425}
2015-07-01 16:15:42 +00:00
Toon Verwaest
e32f9cfc10 Ensure we enable/disable the bootstrapping flag
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29424}
2015-07-01 15:39:28 +00:00
verwaest
fdc5c1343c Return this in Context::native_context if receiver is a native context.
Checking for native context is faster than checking for global object. Additionally it speeds up the case were it actually is the native context, while not slowing down the alternative case. The bootstrapper only needs to access the native context from the native context, so this avoids the expensive fallback.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29423}
2015-07-01 15:34:34 +00:00
Toon Verwaest
b71fe9eed1 Use is_bootstrapping everywhere
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29422}
2015-07-01 15:33:36 +00:00
mbrandy
f4eb08f4f4 PPC: Make context register implicit for CallInterfaceDescriptors
Port 7015fd2053

Original commit message:
    Up until now the context register was listed explicitly in each stub's
    CallInterfaceDescriptor. This was problematic, because it was listed
    first in the list of register parameters--which is fine for Crankshaft,
    which is more or less built to handle the context as the first
    parameter-- but not ideal for TurboFan, which adds the context at
    the end of all function parameters. Now the context register is no
    longer in the register list and can be handled appropriately by both
    compilers. Specifically, this allows the FunctionType specified for
    each CallInterfaceDescriptor to exactly match the parameter register
    list.

R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29421}
2015-07-01 14:21:17 +00:00
akos.palfi
1ab39b4943 MIPS: Fix '[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.'
Fixes debug mode assertions.

TEST=cctest/test-run-machops/RunChangeUint32ToFloat64_B
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29420}
2015-07-01 14:20:10 +00:00
verwaest
78ef2e5b29 Micro-optimize lookupiterator: faster path for fast-mode objects
BUG=chromium:505998
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29419}
2015-07-01 14:19:02 +00:00
Toon Verwaest
369f818395 Update tests to disable interceptors during bootstrapping
BUG=
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29418}
2015-07-01 14:18:15 +00:00
mstarzinger
cd4275aaf1 Fix CodeFlusher::ProcessOptimizedCodeMaps stale fields.
This makes sure that all pointer fields in an entry in the optimized
code map are considered weak, not just the code object. If just one
field of an entry dies, then the whole entry dies.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29417}
2015-07-01 13:43:50 +00:00
mbrandy
549749d374 PPC: Fix InstanceOfStub's inlined call site logic.
This change makes the patching logic less prone to errors in the
face of variable instruction mov sequences.

R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29416}
2015-07-01 13:35:04 +00:00
mstarzinger
7a615a4596 [turbofan] Support preserving of optimized code maps over GCs.
This extends the existing support for --noflush-optimized-code-cache
mechanism to the newly added context-independent code entry in the
optimized code map. Note that this machanism is still off by default.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29415}
2015-07-01 12:29:44 +00:00
verwaest
5c278f632c Minor performance improvements to the LookupIterator
This change changes bootstrapping semantics for intercepted global objects. Unlike before, we'll now also call into the interceptor during bootstrapping. This affects properties loaded from within the runtime, such as global.Array and global.Symbol. The embedder will need to make sure that those values are the expected values during bootstrapping.

BUG=chromium:505998
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29414}
2015-07-01 12:20:10 +00:00
chunyang.dai
b913e2a97a X87: [es6] Make new.target work in functions.
port 7a63bf77eb (r29358).

original commit message:

    This makes new.target work in [[Call]] and [[Construct]] of ordinary
    functions.

    We achieve this by introducing a new construct stub for functions that
    uses the new.target variable. The construct stub pushes the original
    constructor just above the receiver in the construct frame.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29413}
2015-07-01 12:05:27 +00:00
chunyang.dai
fb1329aa2d X87: Unify the stack layout for construct frames.
port 876ae42598 (r29292).

original commit message:

   The stack layout was different for different ports.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29412}
2015-07-01 12:03:40 +00:00
chunyang.dai
b0555da826 X87: VectorICs: Lithium support for vector-based stores.
port 8a3cf4ecef (r29310).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29411}
2015-07-01 11:59:47 +00:00
chunyang.dai
29686a2b54 X87: Vector ICs: Like megamorphic keyed koads, use a dummy vector for stores.
port 9e7af9efc5 (r29280).

original commit message:

    It's useful for the megamorphic keyed store case to not require a
    vector and slot as input. Analogous to the load case, we have a dummy
    one-ic-slot vector to aid. Since the only kind of MISS is for
    megamorphic cache stub failures, we don't need the real vector.
    The reason is that megamorphic cache stub failures don't result in any
    change to the type feedback vector state.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29410}
2015-07-01 11:47:17 +00:00
chunyang.dai
f80fd37260 X87: [ic] Record call counts for monomorphic calls made with an IC.
port c1a4f7477f (r29281).

original commit message:

   The idea is that TurboFan can use this information for more intelligent
   inlining.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29409}
2015-07-01 11:39:20 +00:00
chunyang.dai
4ed8444e73 X87: [turbofan] Add basic support for calling to (a subset of) C functions.
port a58ba8d801 (r29279).

original commit message:

    This introduces some initial building blocks for calling out to
    C/C++ functions directly from TurboFan generated code objects.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29408}
2015-07-01 11:31:57 +00:00
chunyang.dai
68020ce546 X87: change the float max/min operation when operands.
This CL fixes the following situations:
    1, Operands are -0.0 or 0.0. it always return right value.
    1, Operands contains NaN. it always return right value.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29407}
2015-07-01 11:29:10 +00:00
chunyang.dai
aaa92726f0 X87: Use big-boy Types to annotate interface descriptor parameters.
port c019d7f498 (r29248).

original commit message:

    Use big-boy Types to annotate interface descriptor parameters

    - Thread Type::FunctionType through stubs and the TF pipeline.
    - Augment Typer to decorate parameter nodes with types from
      a Type::FunctionType associated with interface descriptors.
    - Factor interface descriptors into platform-specific and
      platform-independent components so that all descriptors share
      a common Type::FunctionType for all platforms.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29406}
2015-07-01 11:28:03 +00:00
mstarzinger
649544d491 Remove deprecated --incremental-code-compaction flag.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29405}
2015-07-01 09:45:08 +00:00
hablich
a023b39f35 [Release tools] Add instructions how to close the auto-roller.
R=machenbach@chromium.org
BUG=494641
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29404}
2015-07-01 09:37:17 +00:00
mstarzinger
35c7925384 Remove deprecated --flush-code-incrementally flag.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29403}
2015-07-01 08:46:19 +00:00
danno
7015fd2053 Make context register implicit for CallInterfaceDescriptors
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.

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

Cr-Commit-Position: refs/heads/master@{#29402}
2015-07-01 08:45:12 +00:00
bmeurer
d82c163de4 [crankshaft] Remove adventurous operator< for Handle<Map>.
This operator< overload is rather dangerous for handles. And we don't
actually need a std::set in the chunk builder, since duplicates are
automatically eliminated later when the code dependencies are committed.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29401}
2015-07-01 08:12:39 +00:00
yangguo
77d566c067 Debugger: ensure that break points are set in code that contain debug break slots.
We now consistently ignore native and extension scripts for debugging. Only native scripts and extension scripts can disallow lazy compilation. So we can make sure that break points are only set to code that are compiled with debug break slots.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29400}
2015-07-01 08:01:24 +00:00
v8-autoroll
bcfc33a553 Update V8 DEPS.
Rolling v8/third_party/icu to 1b697da5c2c0112e2b70e7e75d3e3d985f464a8f

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29399}
2015-07-01 03:26:47 +00:00
chunyang.dai
18d27f1935 X87: Do not add extra argument for new.target.
port 8196c28a94 (r29238).

original commit message:

  JSConstructStub for subclass constructors instead locates new.target in
  a known location on the stack.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29398}
2015-07-01 01:57:30 +00:00