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
0a6e406927
Further improve hashing of pointers and integers.
...
Also make sure that the appropriate functions are inlined properly
(using V8_INLINE instead of inline to enforce it even with GCC),
and improve the HashIsOkish unittest.
TEST=unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/635733002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:39:19 +00:00
bmeurer@chromium.org
e3294b1f09
[turbofan] Fix lowering of typed loads/stores.
...
Only JSLoadProperty/JSStoreProperty nodes with external typed arrays can
be lowered to LoadElement/StoreElement, because lowering of non-external
typed arrays would require a map check.
TEST=cctest,unittests,mjsunit
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/631093003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:36:21 +00:00
bmeurer@chromium.org
03255440de
Don't use identity as hash function for integers.
...
Also slightly improve hashing of floats/doubles.
TEST=unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/632713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:23:59 +00:00
dcarney@chromium.org
e7a635c853
[turbofan] fix vreg mapping for instruction selector tests
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/636543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 14:30:55 +00:00
bmeurer@chromium.org
9440b885ae
Add C++11 compatible base::hash function object.
...
Implement NodeCache in terms of base::hash and std::equal_to in preparation
for HeapConstant caching.
TEST=cctest,unittests
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/624153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:27:24 +00:00
m.m.capewell@googlemail.com
b662e754ae
[turbofan] Negated immediates for ARM64 add/sub
...
Add ARM64 instruction selector support for negating the sense of an arithmetic
instruction when its immediate is negative.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/610323004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 10:39:23 +00:00
jarin@chromium.org
f40d582cf1
Revert "[turbofan] Fix lowering of typed loads/stores."
...
This reverts commit r24386 for tanking asm.js benchmarks.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/634473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:54:24 +00:00
paul.lind@imgtec.com
f9b39f29fb
MIPS: Add turbofan support for mips32.
...
BUG=
R=bmeurer@chromium.org , dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/601723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 15:48:48 +00:00
bmeurer@chromium.org
5899cc8ca7
[turbofan] Fix lowering of typed loads/stores.
...
We can only access to external typed arrays; lowering of internal
typed arrays would require a map check plus eager deoptimization.
Also embed the array buffer reference directly instead of embedding
the typed array.
TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/621863002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:38:37 +00:00
hpayer@chromium.org
ad6b41ffa7
Force scavenge in idle notification if we estimate that it will take long.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/583593006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:21:53 +00:00
mstarzinger@chromium.org
3bc3df9a27
Implement inlined stack-check guards in TurboFan.
...
R=bmeurer@chromium.org
TEST=cctest/test-run-stackcheck/TerminateAtMethodEntry
Review URL: https://codereview.chromium.org/621833003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 14:03:02 +00:00
bmeurer@chromium.org
b9afcdcefb
[turbofan] Add control input to Load and LoadElements.
...
Also remove the now obsolete ControlEffect operator.
TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/620803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:08:37 +00:00
dcarney@chromium.org
b3d426889d
[turbofan] intel lea add multiply matchers
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/614013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:47:14 +00:00
titzer@chromium.org
c1d79db81b
Rename Int32{UMod,UDiv} to Uint32{Div,Mod} and Int64{UMod,UDiv} to Uint64{Div,Mod}.
...
R=bmeurer@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/620773003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:39:11 +00:00
bmeurer@chromium.org
26b181f4d0
Fix unittests.gyp for cross compiling.
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/615243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:54:21 +00:00
bmeurer@chromium.org
bfd37ab267
Move unit tests to test/unittests.
...
As per discussion on the V8 team, this is the place we want them to live,
not following the Chrome Style Guide for this.
BUG=v8:3489
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/615393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:34:25 +00:00
bmeurer@chromium.org
ecec301571
Revert "Initial import of unittests using GTest/GMock."
...
This reverts commit r22847 and r22848. Isolate initialization/shutdown
still broken (so certain debug builds just crash), and our compiler flags
do not work with other Google projects (i.e. GTest/GMock).
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/438243003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 10:16:47 +00:00
bmeurer@chromium.org
88ce4eb5bb
Fix build.
...
TBR=jochen@chromium.org
Review URL: https://codereview.chromium.org/442603004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 08:10:21 +00:00
bmeurer@chromium.org
62ac0d1050
Initial import of unittests using GTest/GMock.
...
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/439863004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 08:07:25 +00:00