jarin@chromium.org
f69bb7fcc3
Do not eliminate bounds checks for "<const> - x".
...
Before this change, bounds check elimination treated "<const> - x" as
"x - <const>".
R=yangguo@chromium.org
BUG=385054
TEST=test/mjsunit/regress/regress-385054.js
LOG=N
Review URL: https://codereview.chromium.org/339583003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:43:50 +00:00
bmeurer@chromium.org
2591003da5
Add unit test for regression in GVN caused by field type tracking.
...
BUG=v8:3347
LOG=n
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/333273004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:21:42 +00:00
bmeurer@chromium.org
4642c2e18c
Revert "GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same."
...
This reverts commit r21830 for tanking performance on Deltablue.
TBR=ishell@chromium.org
Review URL: https://codereview.chromium.org/336223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:03:59 +00:00
marja@chromium.org
71d07279b8
Reuse AstValueFactory when optimizing.
...
HOptimizedGraphBuilder::TryInline creates a temporary CompilationInfo and
destroys it, but we don't want the AstValueFactory to be destroyed at the same
time. Reuse the upper CompilationInfo's AstValueFactory.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/334173003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 10:42:39 +00:00
jkummerow@chromium.org
aae24ae40b
Fix representation of Phis for mutable-heapnumber-in-object-literal properties
...
BUG=v8:3392
LOG=y
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/328343004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 08:41:29 +00:00
jochen@chromium.org
712b0a2066
Fix x87 compile
...
TBR=marja@chormium.org
LOG=n
BUG=none
Review URL: https://codereview.chromium.org/337713003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 16:56:50 +00:00
jochen@chromium.org
9c2019b25c
Remove dependency on Vector from platform files
...
Add wrappers to utils.h instead.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/328343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 16:43:27 +00:00
marja@chromium.org
27d7656b39
Fix windows build (size_t vs. int) some more.
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/336803002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 15:08:57 +00:00
marja@chromium.org
1def5993cb
Fix windows build (size_t vs. int).
...
Sadly, Vector ctor takes an argument "int length".
TBR=dcarney@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/334903002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 14:24:56 +00:00
marja@chromium.org
2b52295935
Fix gn build.
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/338553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:45:49 +00:00
jkummerow@chromium.org
e53511355f
Fix clang build after r21839
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/330793003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:39:01 +00:00
marja@chromium.org
a290cf8cda
Parser: Delay internalizing strings and values.
...
This is needed so that we can run Parser on a non-main thread (independent
of the Isolate and the V8 heap).
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/314603004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:31:56 +00:00
verwaest@chromium.org
7005abf03b
Optimize Function.prototype.call
...
- May inline the function, or call it directly, instead of going through call
- Supports arguments object escaping when it escapes to builtins (preparation for slice.call(arguments, ...) optimization)
- Both .call and .apply now support inlining when calling builtins indirectly
BUG=
R=verwaest@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/335683002
Patch from Petka Antonov <p.antonov@partner.samsung.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:52:23 +00:00
jkummerow@chromium.org
6e29768eb6
Have one, long-lived map for bound functions.
...
This avoids creating a new map for every bound function. Bonus: some cleanup in Runtime_FunctionBindArguments.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/335653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:19:04 +00:00
jkummerow@chromium.org
9dd1f03cb7
Keep maps when resetting elements.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/335553004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:12:42 +00:00
svenpanne@chromium.org
510ea9e529
Reland "Rename kIs64BitArch with kRequiresCodeRange."
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/331823002
Patch from Weiliang Lin <weiliang.lin@intel.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 11:06:42 +00:00
jkummerow@chromium.org
3b545740b4
Remove one more arch-specific target name.
...
One more target had the architecture added to its name since r14209
originally landed and was missed when that change was reverted. Remove
the architecture from v8_libbase as well.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/334793004
Patch from Richard Coles <torne@chromium.org>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 11:02:34 +00:00
svenpanne@chromium.org
d82a6adac5
Emulate MLS on pre-ARMv6T2. Cleaned up thumbee vs. thumb2 confusion.
...
This should unbreak things on the Raspberry Pi.
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/331803003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 10:50:11 +00:00
jkummerow@chromium.org
8334faa0e0
Allow all Names to be fast property names
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/329393005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:59:39 +00:00
jkummerow@chromium.org
a4d1e01b79
Use generic representation when normalizing boilerplate properties
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/323403008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:46:29 +00:00
yangguo@chromium.org
2e8a6f5e99
Mark timed range in the profile plot.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/333643006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:07:56 +00:00
ulan@chromium.org
0f69ed32f3
Disable regress/regress-2653 until deopt_every_n_garbage_collections is fixed.
...
BUG=3389
LOG=N
R=marja@chromium.org
Review URL: https://codereview.chromium.org/331823003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 08:05:34 +00:00
ishell@chromium.org
41e9d916c4
GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/331493006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 07:51:45 +00:00
weiliang.lin@intel.com
fd1ace4d94
X87: Fixed flooring division by a power of 2, once again...
...
port r21769
original message:
Avoid right shifts by zero bits: On ARM it actually means shifting by
32 bits (correctness issue) and on other platforms they are useless
(performance issue). This is fix for the fix in r20544.
BUG=v8:3259
LOG=y
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/330133004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 07:03:11 +00:00
svenpanne@chromium.org
ac18d08250
Fixed undefined behavior in RNG.
...
We're basically trading undefined behavior for implementation defined
behavior, which should be OK for UBSan. :-) The generated code should
be identical, at least I checked that for GCC 4.6.3 on x64.
BUG=377790
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/332733002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 06:36:09 +00:00
haitao.feng@intel.com
817430f6ce
Update Lithium AddI, SubI, MulI, BitI, ShiftI, MathMinMax to support x32 port.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/321373002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:38:46 +00:00
haitao.feng@intel.com
28e74e138a
Specially handle the key of the LoadKeyed and StoreKeyed instruction for x32 port.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/324913002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:19:57 +00:00
palfia@homejinni.com
1eac611491
MIPS: Fix register usage after r21822.
...
The at register is no longer in usage, so changed it to "scratch".
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/335753003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:00:13 +00:00
plind44@gmail.com
d773d05ba6
MIPS: Fix r21780 - “Fixed flooring division by a power of 2, once again...”
...
Initialize scratch register for all possible code paths.
TEST=mjsunit/compiler/division-by-constant.js
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/333713002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 20:25:47 +00:00
mstarzinger@chromium.org
ed61b85c78
Make timestamp of fuzz harness archives finer grained.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/329303004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 18:55:09 +00:00
wingo@igalia.com
dfb1c7dc9e
For-of calls [Symbol.iterator]() on RHS to get iterator
...
R=rossberg@chromium.org
BUG=http://code.google.com/p/v8/issues/detail?id=2735
LOG=N
Review URL: https://codereview.chromium.org/332663004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 17:31:54 +00:00
jochen@chromium.org
5264001898
Drop dependency on Isolate* from platform.h
...
BUG=none
R=dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/328993003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 17:06:24 +00:00
m.m.capewell@googlemail.com
649057e05c
Remove forced type changes when they can't deopt
...
Hydrogen attempts to force representation changes on certain operations in order
to deoptimise on the change rather than the operation. However, these forced
changes are often unnecessary on 64-bit platforms, and cause poor code
generation, so this patch makes some of them conditional on whether it's
possible for deoptimisation to occur in the change.
On ARM64, this prevents sequences like:
;;; <@46,#89> smi-tag
0x7ff282c7f050 144 lsl x4, x4, #32
;;; <@48,#90> smi-untag
0x7ff282c7f054 148 asr x5, x4, #32
;;; <@50,#31> mul-const-i-s
0x7ff282c7f058 152 lsl w6, w5, #3
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/303263010
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:47:51 +00:00
jkummerow@chromium.org
301ae7dd56
Optimize prototype chain when creating initial maps for functions used as constructors
...
Review URL: https://codereview.chromium.org/332783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:41:56 +00:00
jkummerow@chromium.org
918efd7e20
Add non-miss slow path to LoadIC_Normal.
...
This avoids endless IC patching cycles between "normal" and "nonexistent" handlers when objects having and not having the property are seen alternatingly
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/328353002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:38:37 +00:00
plind44@gmail.com
5c96e2cff1
MIPS: Fix unsigned comparison.
...
TEST=mjsunit/regress/regress-3380
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/329223006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:42:14 +00:00
verwaest@chromium.org
fd80653a4c
Rewrite GetPropertyAttribute to use the LookupIterator
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/321543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:08:33 +00:00
weiliang.lin@intel.com
6a8d820f7c
X87: Reland 21774: Generate KeyedLoadGeneric with Hydrogen
...
Port r21781 (4869c528)
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/336543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:05:01 +00:00
danno@chromium.org
7e67361e53
Revert "Active use of Hydrogen-generated generic KeyedLoad IC"
...
Due to mirror-object test failure (although I'm pretty sure I was framed)
R=mstarzinger@chromium.org
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/328333002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:59:51 +00:00
danno@chromium.org
dc0236cffa
Active use of Hydrogen-generated generic KeyedLoad IC
...
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/330023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:23:29 +00:00
jochen@chromium.org
79a9eaf950
Don't use LOG() from platform.
...
All places that use OS::Allocate either CHECK() that the result is non-NULL,
or use a reasonable fallback if they can't mmap memory.
BUG=none
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/326323002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:11:27 +00:00
dcarney@chromium.org
0ffe8b109d
build fix after r21807
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/333503005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 13:25:03 +00:00
hpayer@chromium.org
9f80d07641
Grow big old generation slower.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/324403008
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 12:39:51 +00:00
dcarney@chromium.org
99d9abaf82
remove this == null
...
R=danno@chromium.org
BUG=chromium:381910
Review URL: https://codereview.chromium.org/336483002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 12:01:01 +00:00
haitao.feng@intel.com
4d4485e440
Sign extend the dehoisted key at the definition point for x64 port only; for x32 port, we need to sign extend the dehoisted key at the use points.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/328553005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 12:00:14 +00:00
rossberg@chromium.org
d757f378d3
Add v8::Promise::Then.
...
Blink needs v8::Promise::Then to implement ScriptPromise::then.
Blink-side CL: https://codereview.chromium.org/316453002
BUG=371288
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/314553002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 11:33:30 +00:00
svenpanne@chromium.org
3419aefe5d
Do away with variable length memcpy to Set/Get registers in simulator
...
About a 32% boost.
Before - 5:31
Richards: 84.5
DeltaBlue: 128
Crypto: 65.3
RayTrace: 203
EarleyBoyer: 149
RegExp: 23.4
Splay: 121
NavierStokes: 98.9
----
Score (version 7): 93.8
After - 4:10
Richards: 107
DeltaBlue: 175
Crypto: 93.9
RayTrace: 258
EarleyBoyer: 186
RegExp: 32.7
Splay: 165
NavierStokes: 124
----
Score (version 7): 124
R=jacob.bramley@arm.com , svenpanne@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=21448
Review URL: https://codereview.chromium.org/213943002
Patch from Fritz Koenig <frkoenig@google.com>.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 11:20:31 +00:00
danno@chromium.org
634cb5e8a1
Revert "Revert "Reland 21774: Generate KeyedLoadGeneric with Hydrogen""
...
This CL tickled an unrelated arm64 bug which was is fixed separately.
The MIPS port (originally landed 21784) is also included.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/331633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:58:10 +00:00
verwaest@chromium.org
9fa48abd2c
Remove duplicate code in SetPropertyPostInterceptor
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/314673002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:56:54 +00:00
danno@chromium.org
546b3e5533
Revert "Rename kIs64BitArch with kRequiresCodeRange."
...
TBR=haitao.feng@intel.com
Review URL: https://codereview.chromium.org/325343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 09:55:25 +00:00