Commit Graph

21316 Commits

Author SHA1 Message Date
jochen
09e0f6e21f We don't need a lock for the output queue on the main thread
The output queue is supposed to be a lock-free anyways, we're just
temporarily abusing it by having multiple producers. For those, we need
the lock when enqueuing jobs.

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

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

Cr-Commit-Position: refs/heads/master@{#26824}
2015-02-24 13:42:15 +00:00
jochen
3a98175469 Use mutex/condition variables to synchronize threads
Instead of semaphore and atomics

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

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

Cr-Commit-Position: refs/heads/master@{#26823}
2015-02-24 13:35:27 +00:00
dslomov
675f7d2d5a Invalidate property cells for non-existent properties properly.
R=verwaest@chromium.org
BUG=v8:3914
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26822}
2015-02-24 13:05:13 +00:00
machenbach
42dcc6f4b7 Switch to new branching model in auto-push script.
BUG=chromium:391261
LOG=n
TBR=tandrii@chromium.org
NOTRY=true

TEST=./script_test.py

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

Cr-Commit-Position: refs/heads/master@{#26821}
2015-02-24 13:03:58 +00:00
rossberg
943dc63126 [strong] Deprecate ellisions
R=marja@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26820}
2015-02-24 12:51:08 +00:00
dcarney
95df1bc266 [turbofan] optimize moves into merges
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26819}
2015-02-24 12:49:33 +00:00
yangguo
c42b0e8257 Fix bogus assertion in Debug::PrepareStep.
R=svenpanne@chromium.org
BUG=chromium:461042
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26818}
2015-02-24 12:30:44 +00:00
bmeurer
dcf193f18c [turbofan] Strength reduction for inline comparisons.
Perform strength reduction on machine operators with inline comparisons:

  CMP & 1 => CMP
  1 & CMP => CMP
  CMP << 31 >> 31 => CMP

Also strength reduce the following constructs:

  x + (0 - y) => x - y
  (0 - y) + x => x - y

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26817}
2015-02-24 12:26:29 +00:00
mstarzinger
b33f552f34 Make sure exception handlers are deferred.
R=bmeurer@chromium.org
TEST=unittests/SchedulerTest.CallException

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

Cr-Commit-Position: refs/heads/master@{#26816}
2015-02-24 11:44:57 +00:00
yangguo
abf122cc97 Remove reinvented wheel for partial snapshot cache.
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26815}
2015-02-24 11:31:20 +00:00
dcarney
43c7345b35 [turbofan] only use two gaps
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26814}
2015-02-24 11:09:20 +00:00
jkummerow
32bac2df49 Drop Intrusive*TransitionIterators, use recursion instead.
We already use recursion to iterate over transition trees elsewhere, so this should be safe wrt. call stack height.

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

Cr-Commit-Position: refs/heads/master@{#26813}
2015-02-24 10:50:31 +00:00
jochen
2f7c192676 Get rid of recursive locks for job based recompilation
For flushing the input queue, use the input queue lock. Introduce an
explicit refcount to make sure we don't delete the thread object before
all jobs are finished.

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

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

Cr-Commit-Position: refs/heads/master@{#26812}
2015-02-24 10:41:41 +00:00
yangguo
c5d55550d8 NewError no longer returns a MaybeObject.
We no longer expect NewError to return an empty handle to signal termination
exception, since TryCall simply requests a new terminate exception interrupt.

BUG=chromium:403509
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26811}
2015-02-24 09:01:45 +00:00
yangguo
dafd73016c Reland "Correctly propagate terminate exception in TryCall."
BUG=v8:3892
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26810}
2015-02-24 08:30:30 +00:00
dcarney
92ccbefe11 [turbofan] encode instruction operand as uint64_t
R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26809}
2015-02-24 08:06:54 +00:00
bmeurer
0882d3ff81 [turbofan] Initial version of branch cloning.
This implements a special case of block cloning to recognize constructs like

 if (a ? b : c) { ... }

that happen to be generated by Emscripten quite often.

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

Cr-Commit-Position: refs/heads/master@{#26808}
2015-02-24 07:41:36 +00:00
Erik Arvidsson
592756682a Revert extra commit
"for-of should throw if result object is not an object"

The CQ committed the CL twice

This reverts commit ab2591ed93.

BUG=None
TBR=adamk

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

Cr-Commit-Position: refs/heads/master@{#26807}
2015-02-24 00:21:13 +00:00
arv
ab2591ed93 for-of should throw if result object is not an object
This is done using desugaring. Before this we had:

  result = iterator.next()

with this we instead do:

  !%_IsSpecObject(result = iterator.next()) &&
      %ThrowIteratorResultNotAnObject(result)

BUG=v8:3916
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26806}
2015-02-23 23:34:54 +00:00
arv
87f77d6aba for-of should throw if result object is not an object
This is done using desugaring. Before this we had:

  result = iterator.next()

with this we instead do:

  !%_IsSpecObject(result = iterator.next()) &&
      %ThrowIteratorResultNotAnObject(result)

BUG=v8:3916
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26805}
2015-02-23 23:34:38 +00:00
dpranke
f8abac9331 Update GN build files with the cpu_arch -> current_cpu change.
R=machenbach@chromium.org, jochen@chromium.org
BUG=crbug.com/344767
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26804}
2015-02-23 21:01:41 +00:00
arv
36e72aedf0 ES6 collections: Fix order of constructor logic
The adder should be gotten before the iterator.

Motivation: Once this is done we should be able to use a for-of loop
instead which leads to cleaner code and correct behavior once the
for-of loop correctly supports abrupt completion.

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26803}
2015-02-23 18:55:46 +00:00
verwaest
74c0cdbf76 Prototype objects never share their map, and hence cannot be in deprecated state.
Review URL: https://codereview.chromium.org/955433002

Cr-Commit-Position: refs/heads/master@{#26802}
2015-02-23 18:25:54 +00:00
arv
3a8e496fa4 Promise.all and race should work with iterables
BUG=v8:3705
LOG=N
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26801}
2015-02-23 18:10:14 +00:00
verwaest
ca623fae6c Merge LookupResult into PropertyAccessInfo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26800}
2015-02-23 18:05:20 +00:00
verwaest
460187b563 Revert "The expected key is a valid identifier, which is already free of \\, <0x20, "."
The optimization is invalid as indicated by the test.

BUG=
TBR=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26799}
2015-02-23 17:57:17 +00:00
machenbach
46c7d6811a Bump up version for 4.3 candidate.
NOTRY=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26798}
2015-02-23 14:44:35 +00:00
balazs.kilvady
585e50c3fd MIPS: [turbofan] Fix several int vs size_t issues.
Port 9c1407da78

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26797}
2015-02-23 13:59:28 +00:00
dcarney
7361dce458 emit premonomorphic ics for loads/stores in optimized code
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26796}
2015-02-23 12:34:14 +00:00
ishell
4349b186b7 More tests added to cctest/tests/test-migrations.cc.
This also includes a regression test for crbug/459512.

BUG=chromium:459512
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26795}
2015-02-23 11:59:50 +00:00
dcarney
102ddf35cf disable some harmony scoping tests
R=verwaest@chromium.org

BUG=v8:3914
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26794}
2015-02-23 11:58:54 +00:00
dusan.milosavljevic
c1f8f727e4 MIPS64: Implement optimization utilizing signaling NaN for holes in double arrays.
TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26793}
2015-02-23 10:27:30 +00:00
machenbach
035b144b16 Revert of Correctly propagate terminate exception in TryCall. (patchset #2 id:20001 of https://codereview.chromium.org/928193002/)
Reason for revert:
See crbug.com/460412 and crbug.com/460356. Reverting on master in order to roll from master again soon.

Original issue's description:
> Correctly propagate terminate exception in TryCall.
>
> BUG=v8:3892
> LOG=Y
>
> Committed: https://crrev.com/a49b55b78844557b65a98e7a77dd26078157ed7f
> Cr-Commit-Position: refs/heads/master@{#26685}

TBR=ishell@chromium.org,yangguo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3892

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

Cr-Commit-Position: refs/heads/master@{#26792}
2015-02-23 07:17:30 +00:00
bmeurer
61ac461330 Revert of [x64] Improve instruction selection for TruncateInt64ToInt32. (patchset #1 id:1 of https://codereview.chromium.org/936323004/)
Reason for revert:
Breaks SQLite

Original issue's description:
> [x64] Improve instruction selection for TruncateInt64ToInt32.
>
> R=svenpanne@chromium.org
>
> Committed: https://crrev.com/64a2717529e2197f3a789adabf86ca36f5eb764c
> Cr-Commit-Position: refs/heads/master@{#26739}

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

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

Cr-Commit-Position: refs/heads/master@{#26791}
2015-02-23 07:09:26 +00:00
bmeurer
b951384887 [linux] Use _GLIBCXX_DEBUG in Debug builds by default for better checking.
The _GLIBCXX_DEBUG macro is now set by default for Linux Debug builds
and can be disabled using the disable_glibcxx_debug=1 setting
(compatible with Chrome).  This will help us catch problems earlier.

BUG=v8:3638
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26790}
2015-02-23 06:13:57 +00:00
bmeurer
9c1407da78 [turbofan] Fix several int vs size_t issues.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26789}
2015-02-23 05:44:00 +00:00
adamk
82368b17e9 Replace is_reference_error bool argument with ParseErrorType enum
This avoids accidental coercion-to-bool when calling ReportMessage()
in the parser (e.g., from pointer types), and as a bonus makes callsites
easier to read.

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

Cr-Commit-Position: refs/heads/master@{#26788}
2015-02-20 21:19:59 +00:00
arv
925364f5b4 Fix issue with -0 in Maps
Because we generated a different hash code for 0 and -0 we ended up
not even getting to the SameValueZero check.

BUG=v8:3906
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26787}
2015-02-20 21:02:55 +00:00
arv
fa1523ea6e ES6: Fix GetIterator
After further spec reading it turns out that we should not do ToObject
on the iterable.

BUG=None
LOG=N
R=adamk

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

Cr-Commit-Position: refs/heads/master@{#26786}
2015-02-20 20:07:21 +00:00
balazs.kilvady
39f58c2451 MIPS: Fix label position types in binding code.
Also some target_at and target_at_put uniformed on mips and mips64.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26785}
2015-02-20 19:29:40 +00:00
dusan.milosavljevic
4e946e3e23 Change bit pattern of hole nan to reflect different sNan encoding on mips HW.
TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26784}
2015-02-20 19:09:28 +00:00
mstarzinger
88c4f52cb2 Emit exception handler table in TurboFan.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26783}
2015-02-20 16:22:56 +00:00
yangguo
40ebcea113 Constant-fold strings in HGraphBuilder::BuildBinaryOperation.
R=vegorov@chromium.org
BUG=v8:3325
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26782}
2015-02-20 16:17:08 +00:00
verwaest
6e346dfc84 Only normalize prototypes in OptimizeAsPrototype if it would benefit.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26781}
2015-02-20 15:29:56 +00:00
loislo
9b02dc5b5f CpuProfiler: move StringsStorage class to separate source and header files.
Mechanical change.

This will break dependency between profiler-generator and heap-profiler-generator.
Later this will help us to reuse SourcePosition in cpu-profiler.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26780}
2015-02-20 15:16:00 +00:00
yangguo
0aa1d2af37 Fix GC-unsafe use of BreakLocationIterator.
R=svenpanne@chromium.org
BUG=v8:3776
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26779}
2015-02-20 14:47:35 +00:00
mstarzinger
eb3bbd3da4 Cleanup scheduler unit test a bit.
R=bmeurer@chromium.org
TEST=unittests/SchedulerTest,unittests/SchedulerRPOTest

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

Cr-Commit-Position: refs/heads/master@{#26778}
2015-02-20 14:38:11 +00:00
mstarzinger
7dba829be9 Add missing test for CollectControlProjections on calls.
R=bmeurer@chromium.org
TEST=unittests/NodePropertiesTest.CollectControlProjections_Call

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

Cr-Commit-Position: refs/heads/master@{#26777}
2015-02-20 14:05:18 +00:00
machenbach
b039a75ec5 Whitespace change to test new CQ config.
TBR=tandrii@chromium.org,

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

Cr-Commit-Position: refs/heads/master@{#26776}
2015-02-20 13:47:39 +00:00
loislo
8ba89cce6d CpuProfiler: eliminate cpu-profiler dependency from heap-inl.h
We accessed to cpu_profiler for tracking SharedFunctionInfo objects movements and used their addresses for generating function_id. Actually we could replace the manually generated shared_id by the pair script_id + position. In this case we can drop SharedFunctionInfo events support from cpu_profiler and remove the dependency.

BTW GetCallUid was used as an unique identifier of the function on the front-end side. Actually it is a hash which might not be unique. So I renamed GetCallUid with GetHash and implemented GetFunctionId method.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26775}
2015-02-20 13:28:58 +00:00