Commit Graph

24801 Commits

Author SHA1 Message Date
mlippautz
c9fcaeb336 GC: Refactor incremental marking interface from heap
BUG=

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

Cr-Commit-Position: refs/heads/master@{#30009}
2015-08-04 16:57:14 +00:00
ulan
a88475c059 Revert d5419b for regressing v8.top_25_smooth benchmark.
BUG=chromium:516425
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#30008}
2015-08-04 16:50:38 +00:00
hpayer
c7456abf46 Change RecordSlot interface. Make it more robust by replacing anchor slot with actual object.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#30007}
2015-08-04 16:43:07 +00:00
rossberg
1813f80d73 Fix another instance of the previous build issue
TBR=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#30006}
2015-08-04 15:52:36 +00:00
mtrofin
c11ab6f7e5 Setting up the stage for heuristics that preprocess live ranges before register allocation, and are independent of register allocation - e.g. the deferred blocks heuristic, or the split at call sites heuristic.
Added a separate flag for this, since we intend to enable it for the linear allocator as well. Currently, the option is "on" for greedy, as a point in time to enable its testing (through the greedy allocator bots).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#30005}
2015-08-04 14:50:05 +00:00
bbudge
34bd773eb6 Rename IsSimdObject assembly intrinsic.
Change IS_SIMD_OBJECT to IS_SIMD_VALUE, and IsSimdObject to IsSimdValue.

R=rossberg
LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#30004}
2015-08-04 14:37:07 +00:00
vogelheim
e045b78d8e Avoid data race when writing Shell::options.script_executed.
The race occurred when Workers were used. Since Workers call
Shell::ExecuteString from a different thread, TSAN (correctly) flags
this as a racy write. Solution would be to either synchronize the writes,
or to 'lift' the write higher up in the call stack and only write the flag
from the main thread. This implements this latter solution.

These methods call Shell::ExecuteString, but do *not* set script_executed:
- ExecuteInThread: Can only occur is JS has already been executed.
- Shell::Load: Callback for JS; so JS has already been executed when
               we get there.
- Shell::RunShell: Interactive shell. We no longer need script_executed once
                   we're here.

BUG=v8:4330
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#30003}
2015-08-04 14:32:34 +00:00
rossberg
56bd11a11a [es6] Refactor FormalParameter
Store arity in FormalParameters; store name (instead of var) and is_rest flag in individual parameters. Ensure that the arity is always maintained consistently.

This is preparation for more parameter destructuring adjustments. In particular, a follow-up CL will separate parameter recording from declaring the variables.

R=adamk@chromium.org, littledan@chromium.org
BUG=v8:811
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#30002}
2015-08-04 14:24:58 +00:00
rossberg
479e0c0347 Fix build error (missing cast to void*)
TBR=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#30001}
2015-08-04 14:24:38 +00:00
yangguo
186841f0a0 Revert of Remove serializer-specific hash table size heuristic. (patchset #1 id:1 of https://codereview.chromium.org/1265983006/ )
Reason for revert:
https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/builds/3088/steps/Mjsunit/logs/load-proxy

Original issue's description:
> Remove serializer-specific hash table size heuristic.
>
> The heuristic can cause weird behavior when bootstrapping.
> The memory savings is not worth this hassle.
>
> Committed: https://crrev.com/a246e296c6366dcd0a2d8aa0df973d57093178f6
> Cr-Commit-Position: refs/heads/master@{#29992}

TBR=ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#30000}
2015-08-04 14:09:04 +00:00
titzer
6b63aa06d3 [turbofan] Handle void returns in instruction selector.
R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29999}
2015-08-04 13:14:16 +00:00
rossberg
222b70d10f Correct handling of temporaries as parameters.
They need to be properly recorded in the scope's temps set, otherwise allocation doesn't know about them and can break. (Not observable right now, but necessary for follow-up changes to parameter destructuring.)

Also, print temporary variables in a useful manner.

R=adamk@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29998}
2015-08-04 13:03:53 +00:00
yangguo
117650bb08 Remove some outdated/unused declarations.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29997}
2015-08-04 12:44:42 +00:00
ulan
9aff1d352d Perform full GC in background idle notification.
BUG=chromium:515873
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29996}
2015-08-04 12:42:10 +00:00
yangguo
4e036f3042 Debugger: refactor ScopeIterator, FrameInspector and DebugEvaluate.
This is a pure refactor and does not change functionality.

R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29995}
2015-08-04 12:10:13 +00:00
ulan
0cf86bd2c8 Use conservative heap growing factor for background tab.
BUG=chromium:515873
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29994}
2015-08-04 12:05:22 +00:00
paul.lind
880a648954 MIPS: Fix reg use in SIMD.js Add the other SIMD Phase 1 types.
Port 7b9670b63b

Only fails in debug builds.

TEST=mjsunit/harmony/simd
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29993}
2015-08-04 11:09:32 +00:00
yangguo
a246e296c6 Remove serializer-specific hash table size heuristic.
The heuristic can cause weird behavior when bootstrapping.
The memory savings is not worth this hassle.

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

Cr-Commit-Position: refs/heads/master@{#29992}
2015-08-04 10:57:12 +00:00
hpayer
8548ea5d1a AdjustLiveBytes and friends takes a heap object pointer instead of an address.
That makes going to the page safe. Addresses can be in arbitrary locations of an object, e.g. in a large object but not on the first 1M page.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29991}
2015-08-04 07:02:57 +00:00
v8-autoroll
5ee3176909 Update V8 DEPS.
Rolling v8/buildtools to 565d04e8741429fb1b4f26d102f2c6c3b849edeb

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29990}
2015-08-04 03:25:44 +00:00
ofrobots
7f2dc889d4 remove recursion from NewSpace::AllocateRaw*
The recursion between AllocateRaw* and SlowAllocateRaw makes incremental
stepping very complicated. This patch removes the recursion. Follow-on
patches will improve accounting of allocations done by incremental mark.

See: https://codereview.chromium.org/1252053003/#msg5

BUG=
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29989}
2015-08-03 20:43:51 +00:00
oth
d689c7a7be [Interpreter] Consistency fixes.
Change minimum BytecodeArray frame size to zero now return value is in
the accumulator.

Fix inconsistent checks in bytecode-array-builder.cc.

Simplify bytecode disassembly by adding Bytecodes::Decode to
disassemble one bytecode and operands.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29988}
2015-08-03 20:39:36 +00:00
ulan
d8ad147944 Grow heap slowly after running memory reducer.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29987}
2015-08-03 18:45:53 +00:00
mlippautz
869ab06ea5 GC: Refactor incremental marking steps w/ deadline into a separate call
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29986}
2015-08-03 18:25:21 +00:00
yangguo
4a2e4420b8 Remove JSFunctionResultCache.
There is only one use case for it: String.prototype.search converts a
string argument into a RegExp. The cache is used to avoid repeating that
conversion. However, this does not make the added complexity worthwhile.

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

Cr-Commit-Position: refs/heads/master@{#29985}
2015-08-03 18:14:17 +00:00
dstence
8d2eec506f Enable gdb-jit for PPC64 on Linux (both big-endian and little-endian).
R=danno@chromium.org, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29984}
2015-08-03 18:02:33 +00:00
mlippautz
40bb3a58a0 Remove high promotion mode
High promotion mode limits new space size in the case where many objects (high
rate) are promoted.  The result is frequent scavenger runs with low pause times. The
approach conflicts with pretenuring which requires a larger new space size to
collect enough feedback to be usable.

Ultimately the goal is to have pretenuring catch allocation sites that have high
promotion rates.

Revert "Bring back high promotion mode to shrink young generation size when scavenging latency is high."

This reverts commit 37be1d5e9e.

Revert "GC. Delay/avoid entering high promotion mode"

This reverts commit a5221d0779.

BUG=chromium:499507,chromium:506910
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29983}
2015-08-03 17:29:50 +00:00
binji
df1f72bbf1 [d8 worker] Fix regression when serializing very large arraybuffer
BUG=chromium:514081
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29982}
2015-08-03 17:08:00 +00:00
jochen
ed3e5d1f3a Check whether a typed array was neutered before writing to it
As demanded by the spec.

BUG=chromium:516251
R=jkummerow@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29981}
2015-08-03 16:11:29 +00:00
bbudge
565fe3f017 SIMD.js Fix x87 build.
Rename method EmitIsSpecObject -> EmitIsSimdObject.

LOG=N
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#29980}
2015-08-03 15:32:49 +00:00
hpayer
82e1069330 Add support for large object IsSlotInBlackObject to filter out all dead slots correctly.
BUG=chromium:454297
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29979}
2015-08-03 15:24:17 +00:00
mbrandy
e16cfe562d PPC: Clean up register save/restore logic.
NOPRESUBMIT=true
R=titzer@chromium.org, michael_dawson@ca.ibm.com, jyan@ca.ibm.com, joransiu@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29978}
2015-08-03 14:36:56 +00:00
titzer
80efc9d2fb Fix presubmit errors in runtime-simd.cc.
R=mstarzinger@chromium.org
BUG=
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29977}
2015-08-03 14:28:06 +00:00
hpayer
0924d6d542 Reland of land concurrent sweeping of code space. (patchset #1 id:1 of https://codereview.chromium.org/1263343002/)
Reason for revert:
Bogus revert.

Original issue's description:
> Revert of Reland concurrent sweeping of code space. (patchset #6 id:100001 of https://codereview.chromium.org/1242333002/)
>
> Reason for revert:
> Reverted because 507840 came back on recent Chromecrash. Should not have committed this Cl.
>
> Original issue's description:
> > Reland concurrent sweeping of code space.
> >
> > BUG=
> >
> > Committed: https://crrev.com/8516dccf6a561020441773c93c564dd4aa6ee59e
> > Cr-Commit-Position: refs/heads/master@{#29967}
>
> TBR=jochen@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/5c6e7d00438cc82a5584e3178d7dadf36e4a34f8
> Cr-Commit-Position: refs/heads/master@{#29975}

TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29976}
2015-08-03 14:12:34 +00:00
hpayer
5c6e7d0043 Revert of Reland concurrent sweeping of code space. (patchset #6 id:100001 of https://codereview.chromium.org/1242333002/)
Reason for revert:
Reverted because 507840 came back on recent Chromecrash. Should not have committed this Cl.

Original issue's description:
> Reland concurrent sweeping of code space.
>
> BUG=
>
> Committed: https://crrev.com/8516dccf6a561020441773c93c564dd4aa6ee59e
> Cr-Commit-Position: refs/heads/master@{#29967}

TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29975}
2015-08-03 13:06:55 +00:00
bbudge
7b9670b63b SIMD.js Add the other SIMD Phase 1 types.
Adds Int32x4, Bool32x4, Int16x8, Bool16x8, Int8x16, Bool8x16.
Adds Simd128Value base heap object class.
Changes heap/factory construction pattern to use arrays.
Adds replaceLane functions to facilitate testing.

NOPRESUBMIT=true
(presubmit checks erroneously interpret array declaration in macro definition as variable size array.)

LOG=Y
BUG=v8:4124

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

Cr-Commit-Position: refs/heads/master@{#29974}
2015-08-03 13:02:56 +00:00
jarin
156a155be3 [deoptimizer] Fix the frame size calculation for debugger-inspectable frame construction.
The calculation now takes into account the size of the arguments object
if it is present in the optimized frame.

(Yang, many thanks for the awesome repro!)

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

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

Cr-Commit-Position: refs/heads/master@{#29973}
2015-08-03 12:59:59 +00:00
machenbach
53fbbf0296 [Sheriff] Mark test as flaky.
BUG=v8:4141
LOG=n
NOTRY=true
TBR=yangguo@chromium.org, vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29972}
2015-08-03 11:42:10 +00:00
jarin
f8dcbf4695 [deoptimizer] Do not pass arguments markers to the debugger.
This fixes a bug introduced by r28826 (Unify decoding of deoptimization
translations, https://codereview.chromium.org/1136223004), where we
started leaking arguments marker sentinel to the debugger, which would
then cause crashes. This change replaces the sentinel with the undefined
value in the debugger-inspectable frame.

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

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

Cr-Commit-Position: refs/heads/master@{#29971}
2015-08-03 10:43:31 +00:00
oth
6ab1f70e12 [Intepreter] BytecodeArrayBuilder and accumulator based bytecodes.
The BytecodeArrayBuilder has responsibility for emitting the BytecodeArray. It will be used by the AST walker.

Bytecode now uses an accumulator plus registers rather being pure register based.

Update BytecodeArray::Disassemble to print operand information.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29970}
2015-08-03 10:42:30 +00:00
yangguo
2da7214d98 Disable code recompile verification.
No-snap builds are still failing.

NOTREECHECKS=true
NOTRY=true
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29969}
2015-08-03 10:26:16 +00:00
ulan
59b4d68b77 Partially revert 5aacee to see its impact on memory histograms.
Original CL: https://crrev.com/5aaceefd9a84327ce6afeaea16557449bf83ce57

BUG=chromium:515721
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29968}
2015-08-03 09:31:48 +00:00
hpayer
8516dccf6a Reland concurrent sweeping of code space.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29967}
2015-08-03 09:15:42 +00:00
yangguo
f7d808847f Create function name const assignment after parsing language mode.
Otherwise we may choose sloppy const or strict const depending on
whether the function is parsed the first time.

R=mvstanton@chromium.org
BUG=v8:4336
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29966}
2015-08-03 09:14:26 +00:00
mvstanton
99a53f7323 [compiler] Verify that type feedback vector structure is the same on recompile.
Use a CHECK statement to find any violations of this rule.

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

Cr-Commit-Position: refs/heads/master@{#29965}
2015-08-03 08:14:49 +00:00
chunyang.dai
872206f4c2 X87: [turbofan] Fix kArchTailCallCodeObject on ia32/x64.
port ec9bc79473 (r29949).

original commit message:

    Previously these instructions tried to jump to the value at the code entry's
    location, rather than jumping to this location. Also adds a test.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29964}
2015-08-03 03:10:20 +00:00
chunyang.dai
200d49bf4a X87: VectorICs: refactoring to eliminate "for queries only" vector ic mode.
port 1a5751f9b3 (r29956)

original commit message:

    Since we need the notion of a dummy vector ic, we can use that to avoid
    a special case of the IC constructor. Also, consolidate the two dummy
    ICs into one.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29963}
2015-08-03 03:09:15 +00:00
dusan.milosavljevic
3850132759 MIPS64: Fix hidden bug in relocations for j and jal.
Introduce new mechanism for relocating j/jal.

Resolves flaky failures of mozilla regress tests.

Additionally:

- internal encoded references are not relocated during code generation phase.
- remove asserts from j and jal which are not
valid because addresses are not final and valid in code generation phase.

TEST=mozilla/js1_5/Regress/regress-280769-2, regress-367561-01,
     mozilla/ecma_3/Statements/regress-444979
BUG=
R=paul.lind@imgtec.com

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

Patch from dusan.milosavljevic <dusan.milosavljevic@imgtec.com>.

Cr-Commit-Position: refs/heads/master@{#29962}
2015-08-01 17:04:48 +00:00
oth
e6e3c6a840 [Interpreter] Remove unnecessary const specifiers on scalar types.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29961}
2015-08-01 07:25:30 +00:00
v8-autoroll
11eb702e51 Update V8 DEPS.
Rolling v8/testing/gmock to 0421b6f358139f02e102c9c332ce19a33faf75be

Rolling v8/testing/gtest to 9855a87157778d39b95eccfb201a9dc90f6d61c6

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29960}
2015-08-01 03:23:22 +00:00