mvstanton
7798548a8f
Optimize the typeof operator.
...
typeof was implemented as a runtime function. Calling it in
optimized code with a non-constant input becomes burdensome.
BUG=
Review URL: https://codereview.chromium.org/1114563003
Cr-Commit-Position: refs/heads/master@{#28260}
2015-05-06 13:31:13 +00:00
mvstanton
fb8e613638
Use a stub in crankshaft for grow store arrays.
...
We were deopting without learning anything.
This is a rebase/reland of https://codereview.chromium.org/368263003
BUG=v8:3417
LOG=N
Review URL: https://codereview.chromium.org/1109333003
Cr-Commit-Position: refs/heads/master@{#28163}
2015-04-30 12:34:10 +00:00
bmeurer
e18e3cd4d8
[stubs] Add missing interface descriptor for the CompareIC.
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/1006173003
Cr-Commit-Position: refs/heads/master@{#27305}
2015-03-19 13:09:37 +00:00
mvstanton
6fc97a1965
Retry "Use a WeakCell in the CallIC type vector."
...
The first try failed because I needed to make a better distinction
between clearing ICs according to policy at GC time or unconditional
clearing (say, via %ClearFunctionTypeFeedback).
It was also blocked by an issue in super constructor calls.
This fix (https://codereview.chromium.org/892113002/ ) needs to land
before checking in this CL.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/866493003
Cr-Commit-Position: refs/heads/master@{#26420}
2015-02-04 09:46:22 +00:00
machenbach
24bfa90b31
Revert of Use a WeakCell in the CallIC type vector. (patchset #4 id:80001 of https://codereview.chromium.org/881433002/ )
...
Reason for revert:
Breaks a regression test on linux isloates, and linux with gcc 4.8.
Original issue's description:
> Use a WeakCell in the CallIC type vector.
>
> This allows us to clear the IC on a more sedate schedule, just
> like Load and Store ICs.
>
> R=ulan@chromium.org
> BUG=
>
> Committed: https://crrev.com/bcc79d33ca6d97d9ecfcfcf110a6ea84a0225389
> Cr-Commit-Position: refs/heads/master@{#26332}
TBR=ulan@chromium.org ,mvstanton@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/886663004
Cr-Commit-Position: refs/heads/master@{#26334}
2015-01-29 18:01:23 +00:00
mvstanton
bcc79d33ca
Use a WeakCell in the CallIC type vector.
...
This allows us to clear the IC on a more sedate schedule, just
like Load and Store ICs.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/881433002
Cr-Commit-Position: refs/heads/master@{#26332}
2015-01-29 17:36:51 +00:00
mvstanton
2a567faa3e
Use a trampoline stub to load the type feedback vector for CallICs.
...
BUG=
Review URL: https://codereview.chromium.org/871063002
Cr-Commit-Position: refs/heads/master@{#26290}
2015-01-27 11:24:07 +00:00
dcarney
6950ead0b0
split api call stubs into accessor and function call stubs
...
BUG=
Review URL: https://codereview.chromium.org/836093007
Cr-Commit-Position: refs/heads/master@{#26097}
2015-01-16 10:59:16 +00:00
Michael Stanton
cfa1f94781
Revert "Re-land r25392 Use a stub in crankshaft for grow store arrays."
...
Due to performance issue.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/735323002
Cr-Commit-Position: refs/heads/master@{#25421}
2014-11-19 14:08:43 +00:00
Michael Stanton
47f55baeaf
Re-land r25392 Use a stub in crankshaft for grow store arrays.
...
Code was vulnerable to different evaluation order in Clang.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/726693004
Cr-Commit-Position: refs/heads/master@{#25397}
2014-11-18 14:31:00 +00:00
Michael Stanton
77ee440af1
Revert "Use a stub in crankshaft for grow store arrays."
...
This reverts commit d40204f84c
.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/735653003
Cr-Commit-Position: refs/heads/master@{#25393}
2014-11-18 13:08:07 +00:00
Michael Stanton
d40204f84c
Use a stub in crankshaft for grow store arrays.
...
We were deopting without learning anything.
BUG=v8:3417
LOG=N
R=danno@chromium.org
Review URL: https://codereview.chromium.org/368263003
Cr-Commit-Position: refs/heads/master@{#25392}
2014-11-18 12:32:24 +00:00
bmeurer@chromium.org
3897182246
[turbofan] Add AllocateHeapNumberStub to avoid runtime call.
...
TEST=unittests
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/703473004
Cr-Commit-Position: refs/heads/master@{#25107}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-04 12:58:49 +00:00
dcarney@chromium.org
7f94583f79
[turbofan] add configuration parameters for register allocator
...
T=jarin@chromium.org
BUG=
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/688633002
Cr-Commit-Position: refs/heads/master@{#25008}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-30 09:01:47 +00:00
ishell@chromium.org
85d7140de0
Hydrogenize (and share) part of StoreTransition handler as a StoreTransitionStub and StoreField handler simplification.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/609463003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 14:54:14 +00:00
ishell@chromium.org
171e62e589
ExtendStorageStub added, it is aimed for extending objects backing store when it runs out of space.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/587203002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:11:27 +00:00
mvstanton@chromium.org
febf84a333
Added CallInterfaceDescriptors to all code stubs. A handful
...
of code stubs are too complex to be described this way, and
they are encoded with the macro
DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR().
Along the way:
* allowed inheritance of CallInterfaceDescriptors.
* Defined static Register methods for some of the new
CallInterfaceDescriptors. We could go a lot further here, but
it doesn't have to be done immediately.
* Added Representation arrays to some CallInterfaceDescriptors,
especially where future hydrogen versions of the stubs could
benefit from this knowledge.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/551043005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 07:11:10 +00:00
yangguo@chromium.org
9da1d7dc15
Get CallInterfaceDescriptor directly from CodeStub.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/552803002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 15:18:54 +00:00
mvstanton@chromium.org
dd6d2e0737
CallDescriptors::InitializeForIsolate() is no longer needed.
...
CallInterfaceDescriptors initialize themselves lazily. Soon we can also tear
down the CodeStubInterfaceDescriptor explicit initialization step.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/535103002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 12:25:13 +00:00
mvstanton@chromium.org
c2fe5b2b68
Make concrete classes for individual call descriptors. The ic-convention classes that hold register specifications are merged into these new call descriptor classes, which should represent a final home for that information.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/527093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 10:51:51 +00:00
mvstanton@chromium.org
3a7b5b44c1
InterfaceDescriptor becomes CallInterfaceDescriptor.
...
There was no difference between these two classes in a hierarchical
relationship.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/532473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 12:15:25 +00:00
mvstanton@chromium.org
8786006022
Multiple stubs can point to the same calling convention.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/523583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:18:39 +00:00
mvstanton@chromium.org
9514d34e14
Refactoring InterfaceDescriptors away from code-stubs.h
...
Clean up and create seperation between the concept of a call descriptor and a
code stub interface descriptor. The former is just concerned with how to call,
but the latter has many extra hints related to code generation and
deoptimization for the implementation of a particular code stub.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/517993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 10:40:02 +00:00