Commit Graph

24535 Commits

Author SHA1 Message Date
chunyang.dai
230d0845b7 X87: [interpreter] Add Interpreter{Entry,Exit}Trampoline builtins.
port c5dd553cf3 (r29929).

original commit message:

    Adds interpreter entry and exit trampoline builtins. Also implements the
    Return bytecode handler and fixes a few bugs in InterpreterAssembler
    highlighted by running on other architectures.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29943}
2015-07-31 05:22:28 +00:00
chunyang.dai
b3dd6de508 X87: [interpreter] Change interpreter to use an BytecodeArray pointer and and offset.
port 597da50322 (r29910).

original commit message:

    Changes the interpreter to use a BytecodeArray pointer and an offset to avoid
    having an inner pointer to a BytecodeArray object in registers during dispatch.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29942}
2015-07-31 05:22:27 +00:00
v8-autoroll
5564af55be Update V8 DEPS.
Rolling v8/third_party/android_tools to 2bb73b7af7da7116aa54c1474121c28a85d28e6b

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29941}
2015-07-31 03:27:32 +00:00
mbrandy
4fd562ebdc PPC: Speed up cctest/test-debug/DebugBreakLoop.
Port a67f31c48c

R=yangguo@chromium.org, michael_dawson@ca.ibm.com, jyan@ca.ibm.com, joransiu@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29940}
2015-07-30 18:44:52 +00:00
mbrandy
0ea4e6d50d PPC: [interpreter] Add Interpreter{Entry,Exit}Trampoline builtins.
Port c5dd553cf3

Original commit message:
    Adds interpreter entry and exit trampoline builtins. Also implements the
    Return bytecode handler and fixes a few bugs in InterpreterAssembler
    highlighted by running on other architectures.

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

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

Cr-Commit-Position: refs/heads/master@{#29939}
2015-07-30 18:43:43 +00:00
danno
3c9f69d399 [turbofan]: Add better encapsulation to LinkageLocation
Add factory methods for different types of LinkageLocations, and ensure that
accesses to the underlying data in the location are classified by type and
funneled through explicit accessors.

Also change the representation of LinkageLocation to use a BitField rather
than using a reserved section of the integer range.

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

Cr-Commit-Position: refs/heads/master@{#29938}
2015-07-30 14:52:30 +00:00
chunyang.dai
8ae236c0c4 Fix the failure when enabling v8 profiler or vtune profiler in chromium.
When enabling the v8 profiler (Using the following command parameters: --js-flags=--prof)
   or vtune profiling in chromium. it will break. This failure is introduced by this CL:
   https://codereview.chromium.org/1218863002.

   The reason is that V8 will enable the JITted code logging if --prof is set for V8. And under
   this condition, the function Logger::LogCodeObjects() will be invoked and it will trigger a
   mark-compact GC when deserializing the snapshot. This GC will use MemoryReducer to post a
   delay task by invoking V8Platform::CallDelayedOnForegroundThread() function. But at this point
   V8 isolation is still under initialization and the PerIsolationData of this isolation has not
   been created. (isolation_holder.cc:39~40 line). This leads to V8Platform::CallDelayedOnForegroundThread()
   failure because of segment fault.

   According to my understanding, I proposed the following fix. If the heap deserialization has not
   be completed, it does not post the delay task for next GC.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29937}
2015-07-30 14:30:25 +00:00
yangguo
47fce35e80 Debugger: correctly redirect code with no stack check.
This fix makes the redirect mechanism a bit more stable.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29936}
2015-07-30 14:23:13 +00:00
ulan
0dc4c95933 Add CancelableIdleTask.
BUG=chromium:490559
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29935}
2015-07-30 14:09:14 +00:00
oth
4da6cbd9ee [Interpreter] Add more bytecode definitions and add operand types.
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29934}
2015-07-30 13:57:03 +00:00
epertoso
aec8987b5e Pass the kGCCallbackFlagForced flag when invoking Heap::CollectAllGarbage from AdjustAmountOfExternalAllocatedMemory.
This forces the second pass of the pending phantom callbacks to run immediately after the first.

BUG=chromium:511294
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#29933}
2015-07-30 13:41:51 +00:00
Ben L. Titzer
ca38b15be7 Fix BUILD.gn.
TBR=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29932}
2015-07-30 12:42:22 +00:00
titzer
c215c9569e [turbofan] Factor C call descriptor building into compiler/c-linkage.cc.
This is the first step in cutting the Gordian linkage/linkage-impl knot.

This basically changes the axis along which we organize call descriptor
building logic from having platform-specific files dedicated to all call
descriptor types to having call-descriptor-type-specific files that have

The next step is to factor the JS, code stub, and runtime call descriptors
similarly, dumping them into:
  compiler/js-linkage.cc
  compiler/runtime-linkage.cc
  compiler/code-stub-linkage.cc

 or, alternatively, all of them just into compiler/js-linkage.cc.

This also anticipates a wasm-linkage.cc file in the future.

R=bmeurer@chromium.org,danno@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29931}
2015-07-30 12:36:29 +00:00
hpayer
66f540c073 Use proper verify method when checking slots buffer entries.
BUG=chromium:454297
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29930}
2015-07-30 12:22:31 +00:00
rmcilroy
c5dd553cf3 [interpreter] Add Interpreter{Entry,Exit}Trampoline builtins.
Adds interpreter entry and exit trampoline builtins. Also implements the
Return bytecode handler and fixes a few bugs in InterpreterAssembler
highlighted by running on other architectures.

MIPS and MIPS64 port contributed by Paul Lind (paul.lind@imgtec.com)

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29929}
2015-07-30 11:36:43 +00:00
mvstanton
7a172d54ba VectorICs: --print-ast now prints allocated vector slots
Looks like this:
--- AST ---
FUNC
. NAME "foo"
. INFERRED NAME ""
. RETURN
. . PROPERTY ICSlot(0, LOAD_IC)
. . . VAR PROXY ICSlot(1, LOAD_IC) (mode = DYNAMIC_GLOBAL) "a"
. . . NAME x

BUG=
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29928}
2015-07-30 11:09:54 +00:00
mvstanton
04a7123ae8 Bugfix: CCTest test-func-name-inference/InConstructor is broken
BUG=v8:4331
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29927}
2015-07-30 10:43:16 +00:00
ulan
3c9e8de5e4 Fix idle notification for background tab.
The idle time handler should never return DONE or DO_SCAVENGE for
background tabs. Upon receiving DONE chrome will stop sending idle notifications.

BUG=chromium:515174
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#29926}
2015-07-30 10:38:28 +00:00
conradw
c1970988c0 Move final parts of class literal setup into a single runtime call
This avoids multiple ToFastProperties runtime calls and additional stack
pushes in strong mode.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29925}
2015-07-30 10:38:27 +00:00
mvstanton
f469b21143 Stop overallocating feedback vector slots.
When a Property or a VariableProxy is used as the left hand side of an
assignment statement, there is no need to allocate a LOAD_IC feedback
vector slot for it. Alter the numbering phase to support this.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29924}
2015-07-30 10:38:04 +00:00
bmeurer
5edd18fc2e [runtime] DeclareGlobals and DeclareLookupSlot don't need context parameters.
All runtime function get a context anyway, which is the same as the
explicit one in case of DeclareGlobals and DeclareLookupSlot. So
we can remove the additional parameter there.

As an additional bonus, improve the runtime interface to DeclareLookupSlot.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29923}
2015-07-30 09:30:00 +00:00
yangguo
67efca8be6 Add test for referring function name for classes.
R=mvstanton@chromium.org
BUG=v8:4333
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29922}
2015-07-30 09:21:20 +00:00
Ilija.Pavlovic
496bd53bcc MIPS: Fix disassembler for J and JAL instructions.
Adapted disassembler for J and JAL instructions.

TEST=cctest/test-disasm-mips/Type0,
     cctest/test-disasm-mips64/Type3
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29921}
2015-07-30 09:16:47 +00:00
akos.palfi
437c789a26 MIPS64: Fix the integer division in crankshaft.
Replaces the 64-bit div instruction with 32-bit division in DivI.
Also fixes the Ddiv implementation in the simulator.

TEST=mjsunit/asm/int32div
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29920}
2015-07-30 09:16:29 +00:00
bmeurer
efab0b74dd [turbofan] Fix invalid access to Parameter index.
A Parameter operator contains a ParameterInfo payload, not an int
payload, so the OpParameter<int> cast is invalid (and only worked by
coincidence currently).

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

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

Cr-Commit-Position: refs/heads/master@{#29919}
2015-07-30 09:16:28 +00:00
yangguo
a67f31c48c Speed up cctest/test-debug/DebugBreakLoop.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29918}
2015-07-30 09:11:46 +00:00
jacob.bramley
def8647344 [arm] Fix --enable-vldr-imm.
This fixes several bugs related to float64 pool constants.

Note that float64 pool constants are still disabled by default, and are
only used if --enable-vldr-imm is provided.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29917}
2015-07-30 09:11:25 +00:00
yangguo
c9ed8f9751 Reduce allowance in the first code page at start up.
This has become possible since we moved a few experimental
Javascript features to default.

R=hpayer@chromium.org
BUG=chromium:506044
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29916}
2015-07-30 09:11:24 +00:00
Benedikt Meurer
a57ee763bd Reland^3 "Enable loads and stores to global vars through property cell shortcuts installed into par… (patchset #1 id:1 of https://codereview.chromium.org/1254723004/)"
This reverts commit 2c16d81b25.

R=hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29915}
2015-07-30 08:58:54 +00:00
machenbach
1f2e914d10 [cq] Increase commit burst delay.
TBR=jkummerow@chromium.org, hablich@chromium.org
NOTRY=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29914}
2015-07-30 08:38:37 +00:00
bbudge
bfde458271 Optimize ToString and NonStringToString.
Moves some uncommon type checking from ToString and
NonStringToString into DefaultString. This should
speed up string operations.

LOG=N
BUG=none

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

Cr-Commit-Position: refs/heads/master@{#29913}
2015-07-30 08:21:55 +00:00
binji
053b8434f0 [d8] Fix tsan bugs
script_executed and last_run are read/written by multiple threads. Also
externalized_shared_contents_ is modified by multiple threads.

BUG=4306
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29912}
2015-07-30 08:20:51 +00:00
binji
a87db3dec8 [d8 Workers] Fix bug creating Worker during main thread termination
When the main thread terminates, it forcibly terminates all Worker threads.
When this happens, the threads objects were only half-created; they had a
JavaScript Worker object, but not a C++ worker object.

This CL fixes that bug, as well as some other fixes:
* Signatures on Worker methods
* Use SetAlignedPointerFromInternalField instead of using an External.
* Remove state_ from Worker. Simplify to atomic bool running_.

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

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

Cr-Commit-Position: refs/heads/master@{#29911}
2015-07-30 08:19:39 +00:00
rmcilroy
597da50322 [interpreter] Change interpreter to use an BytecodeArray pointer and and offset.
Changes the interpreter to use a BytecodeArray pointer and an offset to avoid
having an inner pointer to a BytecodeArray object in registers during dispatch.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29910}
2015-07-30 08:18:28 +00:00
yangguo
39bcda21ff Assign more bits to safepoint table offset.
1 << 24 is apparently not large enough for some optimized code.

R=jkummerow@chromium.org
BUG=v8:4272
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29909}
2015-07-30 08:17:29 +00:00
bbudge
e31da45e0f Optimize ToNumber and NonNumberToNumber.
Moves some uncommon type checking from ToNumber and
NonNumberToNumber into DefaultNumber. This should
speed up numeric operations especially as more "value types
are added.

LOG=N
BUG=513196, v8:4124

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

Cr-Commit-Position: refs/heads/master@{#29908}
2015-07-30 08:16:15 +00:00
mbrandy
e2487b805d PPC: Support for conditional return instruction.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29907}
2015-07-30 07:30:40 +00:00
mbrandy
d8b31d881f PPC: [stubs] Don't pass name to Load/StoreGlobalViaContext stubs.
Port 5dff4bdff0

Original commit message:
    No need to pass the name explicitly to the stubs; the runtime can
    extract the name from the ScopeInfo (the extension of the
    ScriptContext) on-demand easily without any performance impact.

R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29906}
2015-07-30 07:28:54 +00:00
jkummerow
2c16d81b25 Revert^3 "Enable loads and stores to global vars through property cell shortcuts installed into par… (patchset #1 id:1 of https://codereview.chromium.org/1254723004/)
Reason for revert:
Suspected to cause Canary crashes

Original issue's description:
> Reland^2 "Enable loads and stores to global vars through property cell shortcuts installed into parent script context".
>
> This reverts commit 362b378501.
>
> R=ishell@chromium.org
>
> Committed: https://crrev.com/440ae014e56924b52337c3747221b79283f07b81
> Cr-Commit-Position: refs/heads/master@{#29849}

TBR=ishell@chromium.org,v8-mips-ports@googlegroups.com,plind44@gmail.com,bmeurer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29905}
2015-07-29 11:49:00 +00:00
yangguo
485aca6df6 Debugger: skip function prologue when computing redirect PC.
R=jkummerow@chromium.org
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29904}
2015-07-29 11:19:20 +00:00
Hannes Payer
aa84551622 Pretenuring decision of outermost literal is propagated to inner literals.
Literals should stay together to simplify allocation folding. This CL takes the pretenuring information from the outermost literal and applies it to the inner liberals.

BUG=chromium:514721
LOG=n
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29903}
2015-07-29 09:56:44 +00:00
v8-autoroll
b7e6da19e2 Update V8 DEPS.
Rolling v8/buildtools to f0b8022601cf9c3c1a2f7efcea48e2fe81d3b143

TBR=machenbach@chromium.org
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29902}
2015-07-29 08:13:21 +00:00
mbrandy
aabb08d8cc Add per-file OWNERS for PPC-specific cctests
BUG=
R=jkummerow@chromium.org
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29901}
2015-07-29 08:12:09 +00:00
machenbach
4970084133 [test] Fix for keying variants.
BUG=chromium:511215
NOTREECHECKS=true
NOTRY=true
LOG=n
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29900}
2015-07-29 07:40:57 +00:00
machenbach
4fe08abde6 [test] Key variant flags by variant name everywhere.
This allows variants to be named on test failures (follow
up) and then to be used in the test runner for a repro.

This also speeds up variant iteration for test262 and fixes
a bug with variants for benchmarks.

BUG=chromium:511215
NOTREECHECKS=true
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29899}
2015-07-29 07:14:30 +00:00
jkummerow
c906efd5d1 Fix prototype registration upon SlowToFast migration
When a prototype object migrates from a slow to a fast map, where the slow map
was registered as a user of its own prototype, then the registration must be
transferred to the new map (just like MigrateToMap does for all other cases).

BUG=chromium:513602
LOG=y
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29898}
2015-07-28 15:41:29 +00:00
nodir
b8568ec86c Moved project configs to infra/config branch
luci-config has been switched to read from
https://chromium.googlesource.com/v8/v8/+/infra/config

R=machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=513460

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

Cr-Commit-Position: refs/heads/master@{#29897}
2015-07-28 15:08:22 +00:00
mvstanton
d2e815f15b Bugfix: Incorrect type feedback vector structure on recompile.
Scoping rules are different on recompile vis-a-vis global loads.

BUG=chromium:514526
LOG=y
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#29896}
2015-07-28 14:03:10 +00:00
machenbach
d4d5663a2f [test] Shorten excessive webkit test.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29895}
2015-07-28 10:17:29 +00:00
machenbach
d12e3232e9 [test] Skip slow test in novfp3 mode.
TBR=yangguo@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29894}
2015-07-28 09:54:14 +00:00