mstarzinger
1a1e53a311
[turbofan] Remove obsolete JSDebugger operator.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1029583009
Cr-Commit-Position: refs/heads/master@{#27437}
2015-03-25 12:43:47 +00:00
Benedikt Meurer
3c4a32dcdc
[turbofan] Introduce JSStackCheck operator.
...
The key idea here is that the stack check should be explicit, such that
we can eliminate unnecessary stack checks after graph building and
potentially inlining.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/981243002
Cr-Commit-Position: refs/heads/master@{#27056}
2015-03-09 05:02:12 +00:00
marja
c7851da4ae
Introduce LanguageMode, drop StrictMode.
...
This enables adding more language modes in the future.
For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to
use a sequence of language modes which are progressively stricter, but we can
express the language mode as combination of features.
For now, LanguageMode can only be "sloppy" or "strict", and there are
STATIC_ASSERTS in places which need to change when more modes are added.
LanguageMode is a bit like the old LanguageMode when "extended" mode was still
around (see https://codereview.chromium.org/8417035 and
https://codereview.chromium.org/181543002 ) except that it's transmitted through
all the layers (there's no StrictModeFlag).
BUG=
Review URL: https://codereview.chromium.org/894683003
Cr-Commit-Position: refs/heads/master@{#26419}
2015-02-04 09:34:26 +00:00
dslomov@chromium.org
eacdfa0b7a
Various clean-ups after top-level lexical declarations are done.
...
1. Global{Context,Scope}=>Script{Context,Scope}
2. Enable fixed tests
3. Update comments
R=rossberg@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/716833002
Cr-Commit-Position: refs/heads/master@{#25291}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 11:35:18 +00:00
titzer@chromium.org
6c6a71b3f7
Move input/output counts directly into Operators, simplying OperatorProperties.
...
This is a first step to refactoring OperatorProperties out of existence.
The next step is to inline OperatorProperties::GetXXXCount into the callers.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/680313003
Cr-Commit-Position: refs/heads/master@{#24983}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 14:41:18 +00:00
dcarney@chromium.org
16e25a1124
[turbofan] delete graph and schedule before register allocation.
...
R=mstarzinger@chromium.org , titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/662513005
Cr-Commit-Position: refs/heads/master@{#24894}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-27 09:37:13 +00:00
mvstanton@chromium.org
59d9651931
TurboFan calls to vector-based ics need to resolve a slot to an index.
...
This is to cope with the recent division of the TypeFeedbackVector into
Slots and ICSlots.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/673203002
Cr-Commit-Position: refs/heads/master@{#24870}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:08 +00:00
mvstanton@chromium.org
c688ebd858
vector-based ICs did not update type feedback counts correctly.
...
BUG=v8:3605
LOG=N
R=jkummerow@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/650073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 11:42:56 +00:00
mvstanton@chromium.org
d04617b2db
Introduce FeedbackVectorSlot type - better than int.
...
It's good to have typing around this value.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/641373002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 13:22:10 +00:00
mvstanton@chromium.org
52575220d4
Teach TurboFan to call vector-based ICs.
...
Additional static information needs to be passed to Load and KeyedLoad calls if
--vector-ics is turned on.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/633423002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 09:49:43 +00:00
bmeurer@chromium.org
a17289f4bc
[turbofan] Drop broken StaticParameterTraits.
...
The StaticParameterTraits are broken by design, and cause way too much
trouble. The compilers usually pick the wrong specialization (i.e. the
default specialization is picked for Load and Phi even tho there is a
specialization for MachineType), which is not only the reason why GVN is
ineffective and slow, but can also lead to correctness issues in some
rare cases.
Also clean up some minor bugs/inconsistencies on the way.
TEST=cctest,unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/636893002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 13:30:28 +00:00
bmeurer@chromium.org
c1ee6247ca
[turbofan] Some javascript operators are globally shared singletons.
...
Also cleanup the interface, and make the parameter class/accessors
explicit to work-around the type-unsafety of OpParameter<T>.
TEST=compiler-unittests,cctest,mjsunit
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/613683002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:42:44 +00:00
bmeurer@chromium.org
3eebdc3264
Replace OStream with std::ostream.
...
Review URL: https://codereview.chromium.org/618643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
bmeurer@chromium.org
6bb08db27e
[turbofan] Next step towards shared operators.
...
TEST=compiler-unittests,cctest
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/555283004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 12:23:45 +00:00
mstarzinger@chromium.org
6034230db7
Some follow-up fixes after r23801.
...
R=rossberg@chromium.org
TEST=mjsunit --turbo-types
Review URL: https://codereview.chromium.org/559563002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-09 14:48:16 +00:00
mstarzinger@chromium.org
4539e9b936
Remove deprecated PrintableUnique.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/543743002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 13:45:05 +00:00
sigurds@chromium.org
e7817a9e54
Remove dependency from generic lowering on compilation info for determining strictness and builtins.
...
This makes the graphs compositional for inlining (i.e. we can now inline a strict function into a non-strict function, or vice versa).
1) Store strict mode as parameter in StoreNamed/StoreProperty.
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/473263004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 08:39:24 +00:00
jarin@chromium.org
1f776a07a6
Reland "More lazy deoptimization in Turbofan (binops, loads/stores)"
...
This relands commit r23029 + adds missing lazy deopts for JSAdd operator inside VisitForInStatement. The added lazy deopt still refers to a bogus bailout id, but at least the graphs can be scheduled.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/450103004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 12:26:17 +00:00
jarin@chromium.org
2558423c85
Revert "More lazy deoptimization in Turbofan (binops, loads/stores)"
...
This reverts commit r23029.
BUG=
TBR=eisinger@chromium.org
Review URL: https://codereview.chromium.org/460623002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 11:21:51 +00:00
jarin@chromium.org
d04a7d6d91
More lazy deoptimization in Turbofan (binops, loads/stores)
...
Deoptimizing binory operations, (Load|Store)(Property|Named),
constructors.
This also fixes safepoint lookup to account for lazily deoptimized code.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/453383002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 10:42:01 +00:00
jarin@chromium.org
e1deee4181
Revert "Initial shot at deoptimizing JSCallFunction in Turbofan."
...
This reverts commit r23020.
BUG=
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/453363003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 07:33:58 +00:00
jarin@chromium.org
5c2e968bdb
Initial shot at deoptimizing JSCallFunction in Turbofan.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/444883006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 06:55:16 +00:00
mstarzinger@chromium.org
b47fe57307
Carry along ContextualMode in JSLoadNamed operators.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/435393004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:50:57 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00