Commit Graph

24461 Commits

Author SHA1 Message Date
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
mbrandy
de7e8a8c6d PPC: VectorICs: refactoring to eliminate "for queries only" vector ic mode.
Port 1a5751f9b3

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.

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

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

Cr-Commit-Position: refs/heads/master@{#29959}
2015-07-31 19:27:00 +00:00
cbruni
ffb3a92759 Array Builtin Refactoring: Creating API methods on ElementsAccessor
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29958}
2015-07-31 16:10:51 +00:00
titzer
44bfb4b57e [turbofan] Simplifying handling of callee-cleanup stack area.
R=danno@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29957}
2015-07-31 15:18:52 +00:00
mvstanton
1a5751f9b3 VectorICs: refactoring to eliminate "for queries only" vector ic mode.
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/1268783004

Cr-Commit-Position: refs/heads/master@{#29956}
2015-07-31 14:04:13 +00:00
titzer
3edebf08eb [turbofan] Float32 LinkageLocations need double registers too.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29955}
2015-07-31 12:53:30 +00:00
martyn.capewell
9bf532350f [turbofan] Merge dependent Word32Equal on ARM64
Improve code generated for flag materialization.

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

Cr-Commit-Position: refs/heads/master@{#29954}
2015-07-31 12:46:09 +00:00
bmeurer
4fc6f54724 [stubs] Unify (and optimize) implementation of ToObject.
This is the initial (big) step towards a more uniform implementation of
the ToObject abstract operation (ES6 7.1.13), where we have a fallback
implementation in JSReceiver::ToObject() and a fast (hydrogen) CodeStub
to deal with the fast case (we should be able to do more cleanup on this
in a followup CL).  For natives we expose the abstract operation via a
%_ToObject intrinsic, also exposed via a macro TO_OBJECT, that unifies
the previous confusion with TO_OBJECT_INLINE, ToObject, TO_OBJECT,
$toObject and %$toObject.  Now the whole implementation of the abstract
operation is context independent, meaning we don't need any magic in the
builtins object nor the native context.

R=mvstanton@chromium.org,yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29953}
2015-07-31 12:25:44 +00:00
mvstanton
f8a4afa7bd VectorICs: Crankshaft adaptations to deal with vector store ics.
Also, a one line fix in TurboFan to call the correct store ic.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29952}
2015-07-31 11:56:22 +00:00
yangguo
1667c15e37 Debugger: move implementation to a separate folder.
R=cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29951}
2015-07-31 11:08:15 +00:00
ulan
b4cfd60e07 Ensure the memory reduces makes progress.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29950}
2015-07-31 10:28:16 +00:00
rmcilroy
ec9bc79473 [turbofan] Fix kArchTailCallCodeObject on ia32/x64.
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=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29949}
2015-07-31 10:20:25 +00:00
titzer
8d2f455352 [turbofan] GraphBuilderTester uses --print-opt-code.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29948}
2015-07-31 09:12:41 +00:00
ulan
d5419bb6b4 Take into account freed global handles for heap growing.
This partially brings back the heuristic from v8 4.44.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29947}
2015-07-31 09:00:10 +00:00
jochen
bc49e1e1ba After trying once to create a Realm in regress-crbug-501711.js give up
R=hpayer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29946}
2015-07-31 08:06:54 +00:00
mlippautz
b2f56b8599 GC: Add tracing event for rescanning large objects on newspace evacuation
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29945}
2015-07-31 07:29:43 +00:00
machenbach
029c813145 Revert of [cq] Increase commit burst delay. (patchset #1 id:1 of https://codereview.chromium.org/1258193003/)
Reason for revert:
Committing more than one CL at a time led to some odd buildbot behavior on the console (probably an independent bug).

Original issue's description:
> [cq] Increase commit burst delay.
>
> TBR=jkummerow@chromium.org, hablich@chromium.org
> NOTRY=true
> NOTREECHECKS=true
>
> Committed: https://crrev.com/1f2e914d103532df410f118c81c60fba8b6a00e0
> Cr-Commit-Position: refs/heads/master@{#29914}

TBR=jkummerow@chromium.org,hablich@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29944}
2015-07-31 07:16:48 +00:00
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