Commit Graph

18379 Commits

Author SHA1 Message Date
yangguo
cc2c902fa5 Encode RelocInfo extra tag to fit changed RelocInfo kind enum.
This fixes some failures on MIPS. Though not all of them, since
MIPS does not correctly implement set_target_internal_reference.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27183}
2015-03-13 13:39:26 +00:00
dslomov
de8e2be875 Implement TDZ in StoreIC for top-level lexicals.
StoreIC::Store was missing a check present in LoadIC::Load.

R=rossberg@chromium.org
BUG=v8:3941
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27182}
2015-03-13 13:28:18 +00:00
jochen
a6a887d083 Extract code to mark an object during incremental marking
Not only does this remove code duplication, I also plan to use this for
unifying reference group marking later

BUG=none
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27180}
2015-03-13 12:14:11 +00:00
yangguo
057857ef06 PPC: fix allocation issues for PPC64.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27179}
2015-03-13 11:18:31 +00:00
titzer
3ff0e6f023 Speed up FastElementsAccessor::ValidContents by removing redundant handle scope.
R=jkummerow@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27178}
2015-03-13 10:47:42 +00:00
yangguo
a873c9f336 Serializer: prepare support for INTERNAL_REFERENCE_ENCODED.
Platform ports that use this RelocInfo kind need to implement
set_target_internal_reference accordingly to distinguish between
INTERNAL_REFERENCE and INTERNAL_REFERENCE_ENCODED.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27177}
2015-03-13 10:08:04 +00:00
marja
0c56d7e809 Remove duplicate script scope.
We previously had two nested SCRIPT_SCOPEs (used to be GLOBAL_SCOPES), but as
the lexical variable implementation changed, the inner one is no longer needed.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27176}
2015-03-13 09:46:14 +00:00
jochen
0a1e272f9c Turn on job-based optimizing compiler
BUG=v8:3608
R=yangguo@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27175}
2015-03-13 09:14:00 +00:00
michael_dawson
0697e92952 PPC: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port 99f8d57f3c

Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27160}

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27174}
2015-03-13 07:40:07 +00:00
michael_dawson
ae78a9702a PPC: Simplify pending message object handling.
Port d4696c4841

Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27150}

R=danno@chromium.org, svenpanne@chromium.org, titzer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27173}
2015-03-13 07:34:57 +00:00
bmeurer
83f157bc18 [turbofan] Use builtin inlining mechanism for Math.abs and Math.sqrt.
Reduces the amount of custom support code for Math functions in TurboFan
and allows for more general inlining (i.e. independent of parameter
types).

BUG=v8:3952
LOG=n
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27172}
2015-03-13 07:06:15 +00:00
adamk
0c305e0b1b Fix error message for Object.observe accept argument
BUG=chromium:464695
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27171}
2015-03-12 19:04:38 +00:00
balazs.kilvady
7290d15e71 MIPS: Improve naming of turbofan ops for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27169}
2015-03-12 17:29:16 +00:00
balazs.kilvady
323ec9e8bd MIPS: [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Port 99f8d57f3c

Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27168}
2015-03-12 16:43:51 +00:00
dcarney
2d3311b82f remove DeletedField from PropertyDetails
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27166}
2015-03-12 16:03:27 +00:00
dslomov
c071af5ae3 Switch the order of experimental global initialization and running natives.
The order should match the one for normal natives.

R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27165}
2015-03-12 15:44:38 +00:00
johan
68d5f916d8 Fix build on solaris platforms
e8b9f2d7 introduced a different cast which broke building on Illumos.
Revert to previous behavior for V8_OS_SOLARIS only.

Found on SmartOS while building with gcc 4.9.0.

edit1: adding jochen to reviewers since he was assigned through the issue tracker and danno since he seems to do a fair amount of cross-platform work

edit2: removing BUG reference because I don't understand what LOG needs to contain (and it seems to link to chromium and not the v8 repo). Please edit commit message as appropriate.

BUG=3935
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27163}
2015-03-12 15:12:45 +00:00
mstarzinger
1a37a4cc39 [turbofan] Bring back long lost comment to AstGraphBuilder.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27162}
2015-03-12 15:04:38 +00:00
yangguo
4e9daf4e3d Hide RegExp and String initialization in a closure.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27161}
2015-03-12 14:47:49 +00:00
bmeurer
99f8d57f3c [turbofan] Introduce optional Float64Min and Float64Max machine operators.
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27160}
2015-03-12 14:07:39 +00:00
caitpotter88
1aae3a1c89 [es6] support template literals after MemberExpression
BUG=v8:3958, 450942
LOG=N
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27159}
2015-03-12 14:02:04 +00:00
balazs.kilvady
811caee0e0 MIPS: Simplify pending message object handling.
Port d4696c4841

Original commit message:
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27158}
2015-03-12 13:54:45 +00:00
mstarzinger
4dfff4abbd [turbofan] Introduce builders for property access.
This introduces a choke point in the AstGraphBuilder for property
access creation. This makes it easier to enrich all such nodes with
additional side-table or debugging information.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27157}
2015-03-12 13:50:05 +00:00
bashi
83245abb6b Add Cast() for Int32 and Uint32
It should be possible to cast a Value to Int32 without throwing an exception
when IsInt32() is true. Same for Uint32.

BUG=chromium:462402
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27156}
2015-03-12 12:27:46 +00:00
Sven Panne
40567349df Remove funky 2-stage initialization of ParserInfo and an adventurous memset.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27155}
2015-03-12 11:46:32 +00:00
ishell
0902b5f4df Incorrect handling of HTransitionElementsKind in hydrogen check elimination phase fixed.
BUG=chromium:460917
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27154}
2015-03-12 11:44:29 +00:00
dcarney
317ce1170d add 0 length guard in IsNonArrayIndexInteger
TBR=verwaest@chromium.org

BUG=466086
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27151}
2015-03-12 10:44:38 +00:00
mstarzinger
d4696c4841 Simplify pending message object handling.
This moves the decision whether to report a message or not to when
the pending exception is propagated instead of trying to preserve the
decision in a ThreadLocalTop field.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27150}
2015-03-12 09:50:44 +00:00
mvstanton
4ededa8694 Vector-ICs: Implement slot sharing for global loads.
We can reduce the number of type feedback vector slots required, and
also reduce IC misses.

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

Cr-Commit-Position: refs/heads/master@{#27149}
2015-03-12 09:23:01 +00:00
bmeurer
b5197ea478 [turbofan] Remove unused diamonds during control reduction.
A diamond is unused if the Merge node has no Phi/EffectPhi uses, exactly
two inputs, one IfTrue and one IfFalse, which have the same Branch
control input and no other uses except for the Merge. In this case the
diamond can safely be removed.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27148}
2015-03-12 09:02:22 +00:00
michael_dawson
be2e9199cb PPC: simplify delta calculation in DoDeferredInstanceOfKnownGlobal.
... and improve protection against trampoline table generation in this
sequence.

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27146}
2015-03-12 08:14:51 +00:00
michael_dawson
c67dab62c7 PPC: Simplify pending message script handling.
Port f71e262683

Original commit message:
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27127}

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27144}
2015-03-12 04:27:18 +00:00
adamk
9703c057c5 Modules: simplify logic around allocation of module internal variables
Since recursive modules are gone, only the top-level scope can have
module inner scopes. Rename Scope::AllocateModulesRecursively to
Scope::AllocateModules, and add test showing the module Variables
are still allocated appropriately in the top level scope.

BUG=v8:1569,v8:3940
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27143}
2015-03-11 23:19:57 +00:00
ishell
6d0677d845 Reland of Remove slots that point to unboxed doubles from the StoreBuffer/SlotsBuffer.
The problem is that tagged slot could become a double slot after migrating of an object to another map with "shifted" fields (for example as a result of generalizing immutable data property to a data field).
This CL also adds useful machinery that helps triggering incremental write barriers.

BUG=chromium:454297, chromium:465273
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27141}
2015-03-11 19:29:57 +00:00
balazs.kilvady
2bd426cdd5 MIPS: Simplify pending message script handling.
Port f71e262683

Original commit message:
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27140}
2015-03-11 17:25:11 +00:00
balazs.kilvady
94d49b1150 MIPS64: CpuProfiler: fix for CollectDeoptEvents test.
Port a925f3f478

Original commit message:
The same idea as in https://codereview.chromium.org/984893003/

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27139}
2015-03-11 16:52:29 +00:00
yangguo
9333e7e135 Hide native Date implementation in function context.
This further reduces the context size.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27138}
2015-03-11 15:53:37 +00:00
svenpanne
a69cfac182 Re-arranged intrinsic macros a bit.
Outside of runtime.h, only the distinction between intrinsics
returning pairs and those returning pairs is really meaningful, not
the internal traditional partitioning of them.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27137}
2015-03-11 15:18:52 +00:00
michael_dawson
d88656af9f cctest/test-deoptimization/DeoptimizeCompare was failing on PPC because the path that is optimized for isel incorrectly used integer values instead of Smi's
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27136}
2015-03-11 14:58:03 +00:00
svenpanne
611eb25894 Converted FullCode to have its own list of known intrinsics.
Combined the various lists, the only slightly ugly thing is now the
distinction between intrinsics returning pairs and the rest, but
that's no big deal.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27135}
2015-03-11 14:03:29 +00:00
loislo
df9e6fe329 CpuProfiler: simplify inlined function info magic.
I did some investigation and found that in the most cases
the old schema with the separate List for functions and inlines
gives us no memory benefits because more frequently we inlines
different functions into parent function. So the plain schema
wins a tens or even hundreds bytes a few thousand times.

The only drawback is that we will print the inlined body
the each time when we inline it. But is not a problem
because it happens only under FLAG_hydrogen_track_positions.

Also I added script_id to the structure, so it could be used later
by cpu-profiler.

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27134}
2015-03-11 13:51:25 +00:00
balazs.kilvady
ee4f1bd81d MIPS: CpuProfiler: fix for CollectDeoptEvents test.
Port a925f3f478

Original commit message:
The same idea as in https://codereview.chromium.org/984893003/

BUG=chromium:452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27133}
2015-03-11 13:42:51 +00:00
mstarzinger
61e4b6028b Remove superfluous ThreadLocalTop::catcher field.
The external v8::TryCatch handler was computed eagerly and kept in
intact. This changes it to be computed lazily for simplicity and
readability of the code.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27132}
2015-03-11 13:36:15 +00:00
svenpanne
88a7f24f46 Bailout for %_FastOneByteArrayJoin again.
This recovers the performance loss for some ancient benchmarks.
Added some comments/UNIMPLEMENTED on the way.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27131}
2015-03-11 13:28:46 +00:00
dcarney
b1a5812203 the IsPromise function should not execute js
BUG=v8:3929
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27130}
2015-03-11 12:14:18 +00:00
verwaest
e77d0abd4a [scanner] Extend fast-smi parsing to the entire range minus Smi::kMinValue
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27129}
2015-03-11 11:33:33 +00:00
hpayer
aab76eff43 Just visit young array buffers during scavenge. Additionally keep the views in new space in a separate global list and move them to the corresponding array buffers when they get promoted.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27128}
2015-03-11 10:58:03 +00:00
mstarzinger
f71e262683 Simplify pending message script handling.
This removes the separate tracking of the pending message script,
because that script is already stored in the message object and
duplicating it in the ThreadLocalTop makes it more brittle.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27127}
2015-03-11 10:02:48 +00:00
dcarney
5234d9977d convert most remaining api functions needing context to maybes
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27126}
2015-03-11 09:33:04 +00:00
michael_dawson
45e4a78911 Contribution of PowerPC port (continuation of 422063005) - uplevel
Contribution of PowerPC port (continuation of 422063005,
817143002,866843003, and 901083004). This patch updates
the ppc directories to make them current with changes in
common code as of today.

We had to exclude the test test-serialize/SerializeInternalReference
until we agree on the right way to add those changes for PPC as
outlined in the description in the google doc provided earlier.

We also had to exclude a couple of other tests due to new
failures seen since the last uplevel.  We excluded as opposed
to waiting until we could investigate to maximize the chance
of getting PPC compiling in the google repos before new
breaking changes are made.

I'll note that before applying any of our changes the
mozilla part of quickcheck was already broken when using
the lastest repo content so I had to run without that

	modified:   src/compiler/ppc/code-generator-ppc.cc
	modified:   src/compiler/ppc/instruction-codes-ppc.h
	modified:   src/compiler/ppc/instruction-selector-ppc.cc
	modified:   src/ic/ppc/handler-compiler-ppc.cc
	modified:   src/ic/ppc/ic-compiler-ppc.cc
	modified:   src/ppc/assembler-ppc-inl.h
	modified:   src/ppc/assembler-ppc.cc
	modified:   src/ppc/assembler-ppc.h
	modified:   src/ppc/builtins-ppc.cc
	modified:   src/ppc/code-stubs-ppc.cc
	modified:   src/ppc/codegen-ppc.cc
	modified:   src/ppc/full-codegen-ppc.cc
	modified:   src/ppc/lithium-codegen-ppc.cc
	modified:   src/ppc/macro-assembler-ppc.cc
	modified:   src/ppc/macro-assembler-ppc.h
	modified:   test/cctest/cctest.status

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27125}
2015-03-11 08:49:33 +00:00