Commit Graph

30054 Commits

Author SHA1 Message Date
bmeurer
e96c143171 [turbofan] Optimize typeof in abstract/strict equality comparison.
Add support to optimize certain comparisons of typeof with known
strings to utilize the existing ObjectIs<Type> predicates. Also
add a new ObjectIsCallable, which is used to optimize the common
typeof x === "function" pattern.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35562}
2016-04-18 07:03:23 +00:00
zhengxing.li
eb89a753e1 X87: [Interpreter] Make dispatch table point to code entry instead of code objects.
port 0c05e02f25 (r35480)

  original commit message:
  Modifies Ignition to store code entry addresses in the dispatch table
  rather than code objects. This allows the interpreter to avoid
  calculating the code entry address from the code object on every
  dispatch and provides a ~5-7% performance improvement on Octane with
  Ignition.

  This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable
  tail call dispatch using these code addresses. It also adds a Dispatch
  linkage creator (distinct from the stub linkage type used previously) to
  allow targetting a code address target (which will diverge further from
  the stub linkage type when we remove the context machine register in
  Ignition).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35561}
2016-04-18 06:57:26 +00:00
zhengxing.li
1ff65e9963 X87: [Atomics] code stubs for atomic operations.
port 5e9ddf6ce4 (r35453)

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

  * New atomic code stubs for x64, ia32, arm, arm64
  * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
    to macro-assembler-ia32 (API based on x64 macro assembler)
  * Remove runtime implementation of Atomics.load, the code stub should always be
    called instead
  * Add new test to mjsunit atomics test; check that Smi values of different
    sizes are supported when possible, else fall back to HeapNumbers

  These changes were needed to add another codestub:
  * Bump kStubMajorKeyBits from 7 to 8
  * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35560}
2016-04-18 06:08:09 +00:00
mtrofin
5ec339c4f0 check if we can split (linear scan)
Revert "[wasm] Quickfix for register allocation problem on ia32."

This reverts commit 2ca31b636b.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35559}
2016-04-18 05:42:38 +00:00
zhengxing.li
095aef6d72 X87: RESUBMITTING: Bogus assert prevented chromium roll.
port c2de9611281d6da70fe1770072ec55f2f8aaf467(r35440)

  original commit message:
  Visit the Optimized Code Map on first call rather than closure creation.

  This is useful for escape analysis, and helps upcoming changes to
  type feedback gathering.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35558}
2016-04-18 05:21:01 +00:00
mtrofin
48f0597dd4 The previous validator had trouble handling cases where the move
optimizer was merging phi lowering moves into the node defining the
phi. Addressing such cases proved to be too difficult in the existing
validator.

The new validator addresses this, by making no assumptions on phi
lowering details.

This unblocks 1824303002.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35557}
2016-04-18 05:04:55 +00:00
zhengxing.li
8d20dfaf67 X87: [compiler] Add relocatable pointer constants for wasm memory references.
port 52148c41c9 (r35407)

  original commit message:
  Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35556}
2016-04-18 02:47:42 +00:00
zhengxing.li
807049584d X87: [generators] Store the resume mode in the generator object.
port 2e3296666b04f0a038d9239a92e2ff39b5716f74(r35370)

  original commit message:
  ... instead of doing stack magic.  This is a cleanup in preparation for the new generators implementation.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35555}
2016-04-18 02:30:04 +00:00
zhengxing.li
4035d55c0c X87: Bugfix: assert in lithium compile for LMaybeGrowElements.
port ce1fe78d7e (r35331)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35554}
2016-04-18 02:12:02 +00:00
weiliang.lin
4ea47aa095 [runtime] fix Frame Type compute for wasm code
WASM codes always have a StackFrame::Type marker.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35553}
2016-04-17 16:32:17 +00:00
bmeurer
662caac9d2 [turbofan] JSTypeOf, JSStrictEqual, JSStrictNotEqual and JSToBoolean are pure.
These operators are really pure on the JavaScript level, and were only
part of the effect chain to make sure we don't accidentially schedule
them right after raw allocations, which is no longer an issue since we
now have the concept of atomic regions.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35552}
2016-04-16 19:28:12 +00:00
bmeurer
d197ba5b0e Revert of [turbofan] Improve lowering of ObjectIs<Type> somewhat. (patchset #1 id:1 of https://codereview.chromium.org/1872143002/ )
Reason for revert:
Looking at types in ChangeLowering is generally unsafe.

Original issue's description:
> [turbofan] Improve lowering of ObjectIs<Type> somewhat.
>
> If we already know that the input to one of the ObjectIs<Type> nodes is
> TaggedPointer, we don't need to perform the Smi check at runtime.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/4fc4978cee0bb7ad2ae8681a67b7032eba6a7d11
> Cr-Commit-Position: refs/heads/master@{#35368}

TBR=jarin@chromium.org,bmeurer@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

Cr-Commit-Position: refs/heads/master@{#35551}
2016-04-16 19:26:01 +00:00
bmeurer
ef4ad3eb0f [turbofan] Remove the leftover LoadBuffer hacks.
R=jarin@chromium.org

Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22
Cr-Commit-Position: refs/heads/master@{#35509}

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

Cr-Commit-Position: refs/heads/master@{#35550}
2016-04-16 19:21:54 +00:00
bmeurer
0b9cd6cbec Revert of [turbofan] Remove the leftover LoadBuffer hacks. (patchset #1 id:1 of https://codereview.chromium.org/1887343002/ )
Reason for revert:
Using types in ChangeLowering is generally unsafe.

Original issue's description:
> [turbofan] Remove the leftover LoadBuffer hacks.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22
> Cr-Commit-Position: refs/heads/master@{#35509}

TBR=jarin@chromium.org,mstarzinger@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

Cr-Commit-Position: refs/heads/master@{#35549}
2016-04-16 18:58:12 +00:00
machenbach
df19616f37 Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ )
Reason for revert:
[Sheriff] Breaks
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121

Original issue's description:
> [Atomics] Remove Atomics code stubs; use TF ops
>
> This is a much cleaner solution, which won't require nearly as much
> architecture-specific code. Thanks bmeurer@!
>
> BUG=v8:4614
> LOG=y
> R=bmeurer@chromium.org,jarin@chromium.org
>
> Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3
> Cr-Commit-Position: refs/heads/master@{#35547}

TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4614

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

Cr-Commit-Position: refs/heads/master@{#35548}
2016-04-16 13:13:35 +00:00
binji
6ff5881b1d [Atomics] Remove Atomics code stubs; use TF ops
This is a much cleaner solution, which won't require nearly as much
architecture-specific code. Thanks bmeurer@!

BUG=v8:4614
LOG=y
R=bmeurer@chromium.org,jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35547}
2016-04-16 06:49:05 +00:00
jyan
4037fd50e7 S390: Optimize decoding opcode format by using format table
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35546}
2016-04-16 06:47:02 +00:00
machenbach
ba011836e4 Revert of Get rid of UnsafeCurrent in Sampler (patchset #12 id:220001 of https://codereview.chromium.org/1858143003/ )
Reason for revert:
[Sheriff] Breaks tsan:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/8999

Original issue's description:
> Get rid of UnsafeCurrent in Sampler
>
> Currently we are using UnsafeCurrent in async signal handler to acquire the
> isolate of VM thread, but we want to get rid of that since it prevents V8 from
> being thread agnostic.
>
> This patch replaces UnsafeCurrent with a static map, where we store a map of
> samplers for threads, and makes it accessible by signal handler.
>
> BUG=v8:4889
> LOG=n
>
> Committed: https://crrev.com/62fb4775fea0d56d8a175baf1d902213f6752168
> Cr-Commit-Position: refs/heads/master@{#35541}

TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org,lpy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4889

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

Cr-Commit-Position: refs/heads/master@{#35545}
2016-04-16 06:32:58 +00:00
verwaest
a369f4a39f Revert of Migrate FastCloneShallowObjectStub to TurboFan (patchset #9 id:180001 of https://codereview.chromium.org/1838283003/ )
Reason for revert:
The boilerplate is copied based on the boilerplate + memento size, which reads off the end of the boilerplate.

Original issue's description:
> Migrate FastCloneShallowObjectStub to TurboFan
>
> BUG=
>
> Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924
> Cr-Commit-Position: refs/heads/master@{#35330}
>
> Committed: https://crrev.com/7fdfdc12d4e4291348112ace4278a827f57f2eb9
> Cr-Commit-Position: refs/heads/master@{#35494}

TBR=bmeurer@chromium.org,jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35544}
2016-04-15 20:08:27 +00:00
haavardm
0ba934d7bf Expose JSON stringifier through V8 API
BUG=602659
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35543}
2016-04-15 18:24:28 +00:00
nikolaos
451fa77235 Re-scope inner scopes in arrow parameter initializers
This patch correctly re-scopes inner scopes that can appear in do
expressions used as initializers to arrow parameters.

R=rossberg@chromium.org
BUG=v8:4904
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35542}
2016-04-15 18:08:31 +00:00
lpy
62fb4775fe Get rid of UnsafeCurrent in Sampler
Currently we are using UnsafeCurrent in async signal handler to acquire the
isolate of VM thread, but we want to get rid of that since it prevents V8 from
being thread agnostic.

This patch replaces UnsafeCurrent with a static map, where we store a map of
samplers for threads, and makes it accessible by signal handler.

BUG=v8:4889
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35541}
2016-04-15 18:08:30 +00:00
ulan
0acd9a4bdf [heap] Remove recorded slots in fixed array header area on left trimming.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35540}
2016-04-15 18:06:20 +00:00
mythria
62801ee3a1 OptimizeFunctionOnNextCall and DeoptimizeFunction ignores calls on non-JSFunction objects.
Runtime_OptimizeFunctionOnNextCall and Runtime_DeoptimizeFunction asserts that
the argument is a JSFunction object.These are used by fuzzers to get coverage
of optimizations in compiler. Having an assert causes a fuzzer test to fail
when OptimizeFunctionOnNextCall is called on objects that are not functions.
We can instead, silently return on such calls.

BUG=chromium:601391
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35539}
2016-04-15 14:51:09 +00:00
jochen
09db5406d4 Reland of Rehash and clear deleted entries in weak collections during GC
BUG=v8:4909
R=hpayer@chromium.org,ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35538}
2016-04-15 14:41:06 +00:00
jyan
146400aef6 S390: [Atomics] code stubs for atomic operations
Port 5e9ddf6ce4

Original commit message:
    * New atomic code stubs for x64, ia32, arm, arm64
    * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
      to macro-assembler-ia32 (API based on x64 macro assembler)
    * Remove runtime implementation of Atomics.load, the code stub should always be
      called instead
    * Add new test to mjsunit atomics test; check that Smi values of different
      sizes are supported when possible, else fall back to HeapNumbers

    These changes were needed to add another codestub:
    * Bump kStubMajorKeyBits from 7 to 8
    * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12

R=binji@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4614
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35537}
2016-04-15 14:24:28 +00:00
machenbach
f8a5a4da70 Revert of Immediately cache compiled scripts. (patchset #2 id:20001 of https://codereview.chromium.org/1890083002/ )
Reason for revert:
[Sheriff] Breaks:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/8769

Auto-bisect points to this CL.

Original issue's description:
> Immediately cache compiled scripts.
>
> Usually, script compilation is expensive enough to warrant the extra
> overhead of caching scripts immediatly.
>
> BUG=chromium:588900
> R=yangguo@chromium.org
> LOG=n
>
> Committed: https://crrev.com/3533c084d470912384988768c4b3b109304da357
> Cr-Commit-Position: refs/heads/master@{#35527}

TBR=yangguo@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:588900

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

Cr-Commit-Position: refs/heads/master@{#35536}
2016-04-15 14:21:48 +00:00
machenbach
6ef4bd8aa7 [build] Tweak configuration for win-clang
Unports parts of https://codereview.chromium.org/1828543003
as per suggestion in
https://codereview.chromium.org/1886293002/

Ports https://codereview.chromium.org/1532723003

Also restores -fmsc-version=1800 to support win-clang with
MSVS 2013.

BUG=chromium:603011
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35535}
2016-04-15 13:58:11 +00:00
jyan
b141154331 S390: Visit the Optimized Code Map on first call rather than closure creation.
Port 9336f4cc6d

Original commit message:
    This is useful for escape analysis, and helps upcoming changes to
    type feedback gathering.

R=mvstanton@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/1887003004

Cr-Commit-Position: refs/heads/master@{#35534}
2016-04-15 13:55:58 +00:00
jyan
af4e21424a S390: [Interpreter] Make dispatch table point to code entry instead of code objects.
Port 0c05e02f25

Original commit message:
    Modifies Ignition to store code entry addresses in the dispatch table
    rather than code objects. This allows the interpreter to avoid
    calculating the code entry address from the code object on every
    dispatch and provides a ~5-7% performance improvement on Octane with
    Ignition.

    This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable
    tail call dispatch using these code addresses. It also adds a Dispatch
    linkage creator (distinct from the stub linkage type used previously) to
    allow targetting a code address target (which will diverge further from
    the stub linkage type when we remove the context machine register in
    Ignition).

R=rmcilroy@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35533}
2016-04-15 13:55:57 +00:00
mstarzinger
1c81ad3f66 [compiler] Hoist bailouts out of OptimizedCompileJob.
This hoists all bailouts out of OptimizedCompileJob::CreateGraph into
the compiler pipeline. The reason is that this moves them to a point
where we can still influence the decision which compiler to pick and
hence gives us more freedom with modeling various pipelines.

R=neis@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35532}
2016-04-15 13:42:07 +00:00
hpayer
19f1391e29 [heap] Fix checks in NewSpace::EnsureAllocation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35531}
2016-04-15 13:17:44 +00:00
mvstanton
401450493e Security: type confusion lead to information leak in decodeURI
Quit using the global array in uri code.

R=yangguo@chromium.org
BUG=chromium:602970
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35530}
2016-04-15 13:09:45 +00:00
mlippautz
723e120bd0 [heap] Optimize NewSpace::AllocatedSinceLastGC
Replace page link walking with arithmetic computation.

BUG=chromium:603460
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35529}
2016-04-15 13:03:51 +00:00
jochen
00a589d9ff [api] Bring back finalizers on global handles
Seems like node.js depends on it in many places. At least try to get rid
of WeakCallbackData vs WeakCallbackInfo

BUG=
R=hpayer@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35528}
2016-04-15 12:59:47 +00:00
jochen
3533c084d4 Immediately cache compiled scripts.
Usually, script compilation is expensive enough to warrant the extra
overhead of caching scripts immediatly.

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

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

Cr-Commit-Position: refs/heads/master@{#35527}
2016-04-15 12:53:36 +00:00
ahaas
5df9406a07 [arm] Turn off the default NaN mode on arm.
The default NaN mode was originally used to identify holes in double
arrays. With (https://codereview.chromium.org/863633002/) signalling
NaNs are used for that, and the default NaN mode is not needed anymore.
Without the default NaN mode it is easier to satisfy the WebAssembly
spec which requires that quiet NaNs are preserved.

R=titzer@chromium.org, rodolph.perfetta@arm.com, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35526}
2016-04-15 12:45:27 +00:00
bmeurer
2742b303b8 [turbofan] Introduce ObjectIsString operator.
This adds an ObjectIsString operator and hooks it up with
JSNativeContextSpecialization (to remove the use of some machine
operators there).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35525}
2016-04-15 12:37:38 +00:00
v8-autoroll
dfb945d543 Update V8 DEPS.
Rolling v8/tools/clang to d9ee849b2aa65cef903af3044e03205d92343093

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

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

Cr-Commit-Position: refs/heads/master@{#35524}
2016-04-15 12:35:35 +00:00
hlopko
b605482600 Add RegisterExternallyReferencedObject to PersistenValueMap
PersistentValueMap is used to hold per-world wrappers in the blink. Currently,
when we trace wrappers, we visit wrappers in all worlds via this PersistentValueMap. This cl introduces convenient (and faster) way of registering these external references.

BUG=468240
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35523}
2016-04-15 12:23:48 +00:00
zhengxing.li
96ddf420c5 X87: [ic] Use the CallFunction builtin to invoke accessors.
port 6df9a22c3f (r35187)

  original commit message:
  The HandlerCompiler did not properly handle the weird edge case when a
  sloppy mode function was installed as an accessor on one of the value
  wrapper prototypes and then accessed via a load from a primitive value.
  In this case we just passed the primitive value untouched instead of
  properly wrapping it first. The CallFunction builtin properly deals with
  all the funny edge cases, so we use it instead of duplicating almost all
  of the logic here (the performance difference is neglible).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35522}
2016-04-15 12:21:31 +00:00
mstarzinger
5882033203 [turbofan] Mark escape analysis as experimental.
This prefixes the escape analysis flag with "experimental", thereby
making sure the flag in question is not being fuzzed. It will reduce
noise levels on ClusterFuzz again.

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

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

Cr-Commit-Position: refs/heads/master@{#35521}
2016-04-15 12:19:29 +00:00
jochen
93c60dca13 [api] Expose ES6 7.3.14 SetIntegrityLevel on v8::Object
BUG=v8:4846
R=verwaest@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35520}
2016-04-15 12:19:28 +00:00
machenbach
5f5a3282d4 Revert of Rehash and clear deleted entries in weak collections during GC (patchset #8 id:140001 of https://codereview.chromium.org/1877233005/ )
Reason for revert:
[Sheriff] Speculative revert. Suspect for gc stress crashes, like:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/5119

Original issue's description:
> Rehash and clear deleted entries in weak collections during GC
>
> Otherwise, they'll just keep growing until we run out of memory or hit the FixedArray's maximum capacity.
>
> BUG=v8:4909
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/e093a047796d4c0575fe63d36529e7fe89b8865d
> Cr-Commit-Position: refs/heads/master@{#35514}

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

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

Cr-Commit-Position: refs/heads/master@{#35519}
2016-04-15 12:17:20 +00:00
ahaas
2f9eb09f20 [arm64] Turn off the default NaN mode on arm64.
The default NaN mode was originally used to identify holes in double
arrays. With (https://codereview.chromium.org/863633002/) signalling
NaNs are used for that, and the default NaN mode is not needed anymore.
Without the default NaN mode it is easier to satisfy the WebAssembly
spec which requires that quiet NaNs are preserved.

R=titzer@chromium.org, rodolph.perfetta@arm.com, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35518}
2016-04-15 11:52:04 +00:00
mstarzinger
62cca39e6c [compiler] Move ensuring deoptimization support to backends.
This moves the responsibility of preparing full-codegen code with
deoptimization support into the backends. This avoids generating such
code when optimization can be done directly from existing bytecode.

R=bmeurer@chromium.org
BUG=v8:4280
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35517}
2016-04-15 11:26:44 +00:00
cbruni
7b2861e35c [heap] Add optimized RecordWrites
BUG=

Committed: https://crrev.com/5210f167e802a3758aac1f2900a6560c8de07831
Cr-Commit-Position: refs/heads/master@{#35231}

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

Cr-Commit-Position: refs/heads/master@{#35516}
2016-04-15 11:16:51 +00:00
yangguo
85e9c2095a Unskip debugger tests after GC fix.
This has been fixed by 165186f272.

R=machenbach@chromium.org
BUG=v8:4893,v8:4894
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35515}
2016-04-15 11:00:54 +00:00
jochen
e093a04779 Rehash and clear deleted entries in weak collections during GC
Otherwise, they'll just keep growing until we run out of memory or hit the FixedArray's maximum capacity.

BUG=v8:4909
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35514}
2016-04-15 10:21:40 +00:00
jarin
71453f1c0f [turbofan] Quickfix for fround built-in lowering.
We have trouble with Math.fround(MEM[...]).  Since we now properly type
LoadBuffer (it can produce undefined), lowering of fround has stopped
triggering (as it requires Number type).  This CL is a quick fix for this issue
- we simply trigger the lowering for NumberOrUndefined and let representation
selection/truncation analysis deal with this.

Ultimately, we would want to insert some 'simplified' ToNumber conversion
that would be optimized as much as possible during representation
selection.

BUG=chromium:603802
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35513}
2016-04-15 09:52:30 +00:00