verwaest@chromium.org
d435819e36
Replace MathFloor/Round by HChange if the input representation does not match the output representation
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22398009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 12:03:40 +00:00
verwaest@chromium.org
19659646ca
Fix smi-based math floor.
...
BUG=chromium:270268
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22623007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 11:21:03 +00:00
jochen@chromium.org
ebadc421e4
Move i18n collator code to runtime.
...
BUG=v8:2745
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22671002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:51:09 +00:00
mstarzinger@chromium.org
899e80130e
Fix handle unsafety in Deoptimizer::MaterializeNextHeapObject.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22327008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:49:15 +00:00
bmeurer@chromium.org
1086e02fef
openbsd: fix platform build
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21705003
Patch from Ben Noordhuis <info@bnoordhuis.nl>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:07:46 +00:00
mvstanton@chromium.org
ab066fae6f
Add flag trap_on_stub_deopt. We want to be able to trap on hydrogen stub bailouts.
...
BUG=
R=svenpanne@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/22593003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 08:24:29 +00:00
svenpanne@chromium.org
f0305bd83e
Instance-type-related fixes and cleanup.
...
Things got quite a bit out of sync (don't we all love copy-n-paste?):
* TypeToString didn't handle SLICED_STRING_TYPE,
SLICED_ASCII_STRING_TYPE, FIXED_DOUBLE_ARRAY_TYPE,
JS_FUNCTION_PROXY_TYPE and JS_DATE_TYPE.
* INSTANCE_TYPE_LIST was missing entries for
SLICED_ASCII_STRING_TYPE, JS_SET_TYPE, and JS_MAP_TYPE.
To improve this maintenance nightmare a little bit, the missing
instance types were added to the INSTANCE_TYPE_LIST macro and this
list is now used via our beloved 2nd order macro technique in
TypeToString. As a side-effect, the strings returned by TypeToString
have a "_TYPE" suffix now, but this doesn't really matter and is a
small price to pay for consistency.
Removed INVALID_TYPE on the way, it had no real use.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22681004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 08:22:46 +00:00
yurys@chromium.org
85d8178d87
Deprecate self and total time getters and total sample count getter on CpuProfileNode
...
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.
Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.
BUG=267595
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22710006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 07:38:26 +00:00
palfia@homejinni.com
e3f1ec4b1a
MIPS: Patch to enhance the source code line information for profiler.
...
Port r16114 (2d1bf399)
Original commit message:
This patch is to enhance the source code line information for profiler.
For the Hydrogen compilation, most of the source code line information
is not copied from the HInstruction the to corresponding LInstruction.
This patch defines one PositionBits field for LInstruction and copies the
sorce code position value from the HInstruction.
When Generating the native code, we use RecordPosition(..) function to
write LInstruction's position value to position recorder.
BUG=
Review URL: https://codereview.chromium.org/22502006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 18:36:25 +00:00
yurys@chromium.org
4f56107e2f
Revert "Deprecate self and total time getters and total sample count getter on CpuProfileNode"
...
This reverts commit r16116 due to WebKit compilation breakage. Will reland it once Blink r155755 is rolled into Chromium.
TBR=svenpanne@chromium.org
BUG=None
Review URL: https://codereview.chromium.org/22388003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 14:43:44 +00:00
yurys@chromium.org
122327d1c6
Deprecate self and total time getters and total sample count getter on CpuProfileNode
...
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.
Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.
BUG=267595
R=loislo@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22347003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 13:39:57 +00:00
plind44@gmail.com
ca09758499
MIPS: Optimize DoCheckMaps.
...
This simple change moves the Deoptimize call into the Deopt table
where it belongs, and shortens the inline map-check.
Gives a surprisingly large performance gain, around 4% on Octane.
BUG=
R=gergely@homejinni.com
Review URL: https://codereview.chromium.org/22391008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 05:04:42 +00:00
haitao.feng@intel.com
fb5857ceb8
Patch to enhance the source code line information for profiler.
...
This patch is to enhance the source code line information for profiler.
For the Hydrogen compilation, most of the source code line information
is not copied from the HInstruction the to corresponding LInstruction.
This patch defines one PositionBits field for LInstruction and copies the
sorce code position value from the HInstruction.
When Generating the native code, we use RecordPosition(..) function to
write LInstruction's position value to position recorder.
For the MIPS platform, I did not touch because I have no devices
to verify the modification on it.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21042003
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 02:16:12 +00:00
haitao.feng@intel.com
f54aa8b6ad
tweak of Math.abs in its x64 stub
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22285003
Patch from Weiliang Lin <weiliang.lin@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 01:29:33 +00:00
plind44@gmail.com
bbbf78e78c
MIPS: Refactor and improve inlined double-aligned allocations
...
Additionally, fix object size register clobbering in Allocate routine.
Based on 13284 (d42bf80).
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/22582002
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 21:54:03 +00:00
verwaest@chromium.org
e5afd32129
Fix Object.freeze, Object.observe wrt CountOperation and CompoundAssignment.
...
BUG=2774,2779
R=adamk@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22562004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 18:45:41 +00:00
verwaest@chromium.org
56ca64e98c
Revert "mod does not rely on a fixed register anymore, the arguments are passed via the stack."
...
Due to buildbot failures.
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22474007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:22:17 +00:00
yurys@chromium.org
707fdd4c6a
Support idle time in CPU profiler
...
This change provides an API for the embedder to tell CPU profiler if it is idle or busy with some task. This way we can discriminate between idle time and some native code execution.
BUG=268947
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/22412003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:04:27 +00:00
olivf@chromium.org
ca4457e8ed
mod does not rely on a fixed register anymore, the arguments are passed via the stack.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21495005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:47:24 +00:00
palfia@homejinni.com
5021e72675
MIPS: First implementation of allocation elimination in Hydrogen.
...
Port r16098 (328ff5f7)
Original commit message:
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
TEST=mjsunit/compiler/escape-analysis
BUG=
Review URL: https://codereview.chromium.org/22580003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:20 +00:00
jkummerow@chromium.org
371ac893f9
Check for empty handle in JSON stringifier
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22420004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:13 +00:00
svenpanne@chromium.org
f3a36593be
Removed wrong ASSERTs on MIPS.
...
R=palfia@homejinni.com
Review URL: https://codereview.chromium.org/22571003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:42:46 +00:00
svenpanne@chromium.org
a8e12c5a02
Handle Symbols in the LBranch instruction on x64.
...
This was an omission in https://code.google.com/p/v8/source/detail?r=14051 .
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/22578002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:33:41 +00:00
prybin@chromium.org
29bb553b1d
Fix step in positions (include various calls and exclude current pc point), add a test
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22198002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:27:22 +00:00
jochen@chromium.org
5a92a95676
Move i18n's number-format C++ code to runtime
...
BUG=v8:2745
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22266009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:14:50 +00:00
mstarzinger@chromium.org
63defee477
First implementation of allocation elimination in Hydrogen.
...
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.
This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.
R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis
Review URL: https://codereview.chromium.org/21055011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 11:24:14 +00:00
yangguo@chromium.org
ef8d394f12
Re-reland "Flush parallel recompilation queues on context dispose notification"
...
BUG=
R=hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22379002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:33:09 +00:00
yangguo@chromium.org
5818d831c5
Make JSON::Parse return Local<Value>
...
It should be able to return Smi, etc. Not only JSObject.
BUG=v8:2821
TEST=cctest/test-api/JSONParseNumber
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22416003
Patch from Takeshi Yoshino <tyoshino@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:11:39 +00:00
dslomov@chromium.org
5ad4a8458a
Prepare push to trunk. Now working on version 3.20.15.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22468004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:05:59 +00:00
dcarney@chromium.org
cd74a09886
expose eternal handle api
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22384003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:26:23 +00:00
jkummerow@chromium.org
a9efd655a5
Pacify Win7 builders
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22554002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:25:44 +00:00
bmeurer@chromium.org
db1436ab65
Handle external reference values properly in HConstant::ImmortalImmovable().
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22274017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 07:08:50 +00:00
jochen@chromium.org
02914097b2
Move i18n extension's date-format C++ code to runtime
...
BUG=v8:2745
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22411003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 03:40:44 +00:00
palfia@homejinni.com
213fd4b678
MIPS: Fix Sunspider 1.0/crypto-aes.
...
* This makes sure that DoModI calculates correct result even when
the left register is the same as the result register.
* Microoptmization: it generates smaller code when left and result
are different registers.
TEST=benchmarks/sunspider/crypto-aes.js
BUG=
Review URL: https://codereview.chromium.org/22491002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 00:39:49 +00:00
dslomov@chromium.org
03172d9da8
Handlify factory methods for typed array, ArrayBuffer and DataView.
...
These factory methods used pointers for constructor fucntions, therefore
those pointers could corrupt if allocation triggered gc.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22426003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:14:51 +00:00
dslomov@chromium.org
d0adaefc55
Fix Win64 build after r16079.
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/22473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:13:15 +00:00
ulan@chromium.org
3511f7a428
Fix Array index dehoisting.
...
BUG=264203
TEST=test/mjsunit/regress/regress-264203
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22314012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 16:38:39 +00:00
jkummerow@chromium.org
25ffcc3407
ARM/MIPS: Fix Constant-to-DoubleRegister moves in LGapResolver
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22314010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:46:50 +00:00
yangguo@chromium.org
fa2381eb75
Wrap back edge table in an iterator.
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22424002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:38:30 +00:00
rossberg@chromium.org
f56ad9cab7
Turn assert into runtime assertion to make fuzzer happy
...
R=mstarzinger@chromium.org
BUG=265369
Review URL: https://codereview.chromium.org/22284009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:19:13 +00:00
yangguo@chromium.org
8fb95efdda
Improve internal stringifcation for custom Error objects.
...
If an developer attempts to "subclass" Error by running
`MyError.prototype = new Error();`, then the internal v8::Message object
that's produced and handed off to `window.onerror` handlers is poorly
stringified as "[object Object]".
This patch adjusts the stringification process for these objects to
include not only native Error objects, but also objects that have Error
in their prototype chain, and haven't overwritten Error.toString with
some custom variant.
BUG=2822
R=mstarzinger@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/21761002
Patch from Mike West <mkwst@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:58:21 +00:00
rossberg@chromium.org
92bd4d1f2d
I found this working on
...
https://codereview.chromium.org/19541010/
The main problem is that if you called Object.getNotifier(obj) on an object, %SetObserved(object) would never get called on it, and thus it would be unobservable (new test added for this).
Additionally, Runtime::SetObserved was asserting obj->IsJSObject() which would fail if called on a proxy.
It just happens that our existing test always called getNotifier() before Object.observe on proxies, and thus we never previously attempted to transition the map of a proxy.
Both issues are now fixed and properly tested.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/21891008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:49:10 +00:00
svenpanne@chromium.org
bc6fe88030
Desugar bitwise negation into XOR and kill all UnaryOp stuff.
...
R=mstarzinger@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/22184004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:34:51 +00:00
dslomov@chromium.org
45f4b685bf
Update Array Iterator to use numeric indexes
...
At the last face-to-face meeting it was decided that we should use
numeric indexes for the Array Iterator values.
https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-07/july-24.md#514-keys-entries-return-numbers-for-array-index-properties
BUG=v8:2818
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/21180008
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:10:07 +00:00
jkummerow@chromium.org
665c45c92d
Un-revert "Implement simple effect typing for variables" and "Handle switch effects"
...
This re-lands r15776 and r15777, reverting the revert in r15786.
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/22144006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 12:57:23 +00:00
bmeurer@chromium.org
548062ea52
r11951 changed the existing check for the __SOFTFP__ define in ARM platforms
...
to a check for __SOFTP. Most other programs look for __SOFTFP__ [1], so
look for both to increase the chances of not erroring out when using GCC 4.5.
[1] Based on http://codesearch.debian.net/search?q=__SOFTFP__ vs
http://codesearch.debian.net/search?q=__SOFTFP [^_]
BUG=v8:2140
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22210002
Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 11:08:32 +00:00
yurys@chromium.org
4e6041d595
Use standard routine to compute pointer hashs in heap profiler
...
BUG=None
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/22300005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:49:05 +00:00
verwaest@chromium.org
206a35763a
Fix DeferredInstanceMigration to store the result to temp rather than temp to result.
...
Thanks to Akos Palfi for finding the bug.
BUG=
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22388002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:26:31 +00:00
yurys@chromium.org
e06343431a
Return start/end profiling time in microseconds instead of milliseconds
...
The start and end time are now measured in microseconds and the type is int64_t.
This way it seems more natural as we are going to support submilisecond sampling
rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test
failure caused by comparison between long double and double.
TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22155003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:00:58 +00:00
danno@chromium.org
61a496f4e4
Prepare push to trunk. Now working on version 3.20.14.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22277006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 07:31:23 +00:00
dcarney@chromium.org
982fa4d381
delete eternal handle blocks correctly
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/22371002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 06:34:54 +00:00
palfia@homejinni.com
8575ae5530
MIPS: Migrate instance of deprecated maps in HCheckMaps.
...
Port r16057 (b73ae514)
Original commit message:
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.
BUG=
Review URL: https://codereview.chromium.org/22254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 01:12:10 +00:00
haitao.feng@intel.com
fe7df8c703
Make some constants' meaning clear for X64
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21721002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 00:09:01 +00:00
palfia@homejinni.com
3b347f45a6
MIPS: Replace HCheckPrototypeMaps by explicit map checks of constant values.
...
Port r16055 (7567e57f)
BUG=
Review URL: https://codereview.chromium.org/21639003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 17:04:10 +00:00
verwaest@chromium.org
2622158aa0
Change environment padding value to value with smi representation.
...
BUG=
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22226002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:53:28 +00:00
mstarzinger@chromium.org
e9f6a2d7b4
Use first hit when dumping heap constants.
...
This makes sure that the first hit is used when dumping heap constants
and hence "TheHoleValue" is not overwritten with other roots that are
initialized to the hole as well.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/21639004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:47:45 +00:00
verwaest@chromium.org
9d9930ce99
Migrate instance of deprecated maps in HCheckMaps.
...
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21536003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:42:39 +00:00
verwaest@chromium.org
04b5e7fa63
Replace HCheckPrototypeMaps by explicit map checks of constant values.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21065006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 13:45:16 +00:00
hpayer@chromium.org
983a8621e0
More cleanup regarding the maximum non-large object allocation size.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20867003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:52:53 +00:00
haitao.feng@intel.com
e8fe083eb0
Introduce Push and Pop register macro instructions for all platforms
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/22041003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:43:04 +00:00
bmeurer@chromium.org
274f254236
Revert "Return start/end profiling time in microseconds instead of milliseconds"
...
This reverts r16049 for breaking build on windows.
TBR=svenpanne@chromium.org ,machenbach@chromium.org
Review URL: https://codereview.chromium.org/22189002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:27:12 +00:00
yurys@chromium.org
d38bbe354b
Return start/end profiling time in microseconds instead of milliseconds
...
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double.
TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=alph@chromium.org , bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22172002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:48:24 +00:00
jochen@chromium.org
cb68e2cd9b
Expose JSON parser through V8 API
...
BUG=v8:2821
TEST=cctest/test-api/JSONParse
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/21959003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:14:46 +00:00
dcarney@chromium.org
207396101f
introduce eternal handles
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21133006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:46:23 +00:00
mstarzinger@chromium.org
a50827e044
Add explicit transition flag to HStoreNamedField.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:35:18 +00:00
yangguo@chromium.org
b58093c953
Add notice when parallel recompilation is disabled by tracing.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/22164002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:28:22 +00:00
yangguo@chromium.org
1ed4df6b57
Disable parallel recompilation for --trace-hydrogen-stubs.
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21830004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:02:47 +00:00
verwaest@chromium.org
251c191824
Fix the loop-builder to tag the entire body as part of the loop.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21813004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 08:59:55 +00:00
dcarney@chromium.org
14ed15e7e1
Make GlobalHandle::NodeBlock deletable
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21042004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:34:29 +00:00
yurys@chromium.org
411d21b2b1
Add start and end profiling time to v8::CpuProfile
...
I'm going to change CPU profiler API and deprecate GetSelfTime, GetTotalTime and GetTotalSamplesCount on CpuProfileNode as all of those values are derived from self samples count and sampling rate. The sampling rate in turn is calculate based on the profiling duration so having start/end time and total sample count is enough for calculating smpling rate.
BUG=267595
R=alph@chromium.org , bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21918002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:17:08 +00:00
svenpanne@chromium.org
e544f130c5
Remove unused UNARY_MINUS builtin.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/22146002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:00:38 +00:00
dcarney@chromium.org
eb52c66fd0
IsNearDeath needs to include pending nodes
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21466003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:58:48 +00:00
svenpanne@chromium.org
d5b9616991
Clean some unuse code of unary negation
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22089002
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:34:26 +00:00
palfia@homejinni.com
ea38ee8782
MIPS: Avoid redundant smi check for Math.abs
...
Port r16021 (d79f4450)
BUG=
Review URL: https://codereview.chromium.org/21903003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 18:35:19 +00:00
haitao.feng@intel.com
dfda85a91a
Introduce PopReturnAddressTo and PushReturnAddressFrom macro-assembler instructions for X64
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21477002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:42:02 +00:00
dslomov@chromium.org
5230c19d8b
Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
...
The previous implementation of Free is a deprecated overload now.
R=mstarzinger@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=16031
Review URL: https://codereview.chromium.org/21803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:03:06 +00:00
dslomov@chromium.org
f8b80ca66d
Revert "Add size_t length argument to v8::ArrayBuffer::Allocator::Free."
...
This reverts r16031 for breaking shared build.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21818003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:56:53 +00:00
dslomov@chromium.org
1688f3c167
Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
...
The previous implementation of Free is a deprecated overload now.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21803002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:19:22 +00:00
svenpanne@chromium.org
bf71023ba5
Replaced unary negation by multiplication with -1.
...
This fixes a deopt loop in the Epic Citadel demo and removes some code. Apart from that, this change is performance-neutral.
When we do something similar for BIT_NOT, the whole UnaryOp stuff can go away.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21782002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:56:35 +00:00
mstarzinger@chromium.org
1e296936eb
Store transition on HStoreNamedField as HConstant.
...
This allows optimization passes that run in the parallel compiler thread
to use the map that a store transitions to for further analysis even
though the map handle cannot be dereferenced.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21560002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:24:55 +00:00
titzer@chromium.org
af2663afd8
Remove instructions and infrastructure related to IDEFs that is now obsolete (and was never turned on). The new bounds check elimination phase doesn't make use of these features, as they were the first parts of the previous approach which was never completed.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21579003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:17:26 +00:00
mstarzinger@chromium.org
c87abd1117
Add new Harmony methods to Array.prototype object.
...
Array.prototype.find
Array.prototype.findIndex
http://people.mozilla.org/~jorendorff/es6-draft.html
BUG=v8:2776,v8:2777
TEST=mjsunit/harmony/array-find,mjsunit/harmony/array-findindex
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21079003
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 10:57:48 +00:00
loislo@chromium.org
d2c443b774
Extract hardcoded error strings into a single place and replace them with enum.
...
I'd like to propagate bailout reason to cpu profiler.
So I need to save it into heap object SharedFunctionInfo.
But:
1) all bailout reason strings spread across all the sources.
2) they are native strings and if I convert them into String then I may have a performance issue.
3) one byte is enough for 184 bailout reasons. Otherwise we need 8 bytes for the pointer.
Also I think it would be nice to have error strings collected in one place.
In that case we will get additional benefits:
It allows us to keep this set of messages under control.
It gives us a chance to internationalize them.
It slightly reduces the binary footprint.
From the other hand the developers have to add new strings into that enum.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/20843012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:53:11 +00:00
mstarzinger@chromium.org
477b41c89b
Fix Mac build after r16022.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21786002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:35:44 +00:00
mstarzinger@chromium.org
12c8d36331
Generate grokdump constants with 'make grokdump' now.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21771002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:02:02 +00:00
jkummerow@chromium.org
a47705644e
Avoid redundant smi check for Math.abs
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21180004
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:59:02 +00:00
jkummerow@chromium.org
15c1d23fbc
Use test(reg, imm) when the operand is a register on ia32
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21521002
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:55:26 +00:00
jkummerow@chromium.org
865582e02b
TSan: Move definition of AtomicOps_x86CPUFeatureStruct into v8::internal namespace
...
This matches other atomicops_internals_* files.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/21534002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:52:59 +00:00
jochen@chromium.org
738237e877
Move helper methods from i18n extension into runtime.
...
BUG=v8:2475
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21499003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:25:27 +00:00
jochen@chromium.org
71cad9edb6
Fix incorrect #ifdef statements for I18N support.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21509002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:21:16 +00:00
danno@chromium.org
40dff5067c
Prepare push to trunk. Now working on version 3.20.13.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/21575003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:57:58 +00:00
jkummerow@chromium.org
61f531cf23
Remove buggy ToNumber truncation
...
BUG=v8:2813
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21531003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:12:31 +00:00
ulan@chromium.org
4de5d18077
Fix mozilla regress-398085-01 failure on windows.
...
Make sure that all stack pages are mapped before accessing them.
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20607005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 12:55:19 +00:00
dslomov@chromium.org
f62ffeef31
Calling Map etc without new should throw TypeError
...
Even though we do not yet allow Map, Set, WeakMap and WeakSet to be
subclassed we need to ensure that we do not allow them to be [[Call]]ed
to allow them to be subclassed in the future.
BUG=v8:2819
R=dslomov@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21400002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 09:18:28 +00:00
dslomov@chromium.org
4ebeda216d
Speed-up 'new TypedArray(arrayLike)'.
...
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.
Allocate backing store uninitialized in cases when we can guarantee
complete initialization.
R=bmeurer@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15998
Review URL: https://codereview.chromium.org/21369002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:52:21 +00:00
hpayer@chromium.org
3e7e3f70a6
Pretenure heap number in high promotino mode if a store requires a mutable heap number to be allocated.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21501002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:49:27 +00:00
dslomov@chromium.org
791e1a9cb2
Revert "Speed-up 'new TypedArray(arrayLike)'."
...
This reverts commit r15998 for breaking NaCl build.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:47:39 +00:00
bmeurer@chromium.org
3da5d1ad7b
Get rid of HStringLength.
...
Use HLoadNamedField to load the string length field instead.
Depends on: https://codereview.chromium.org/21488002
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21499002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:42:47 +00:00
mstarzinger@chromium.org
2e7c5d4988
Fix printing of Harmony Set and Map instances.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/20705003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:36:21 +00:00
hpayer@chromium.org
9e8058146e
Cleaning up HAllocate space and double alignment selection.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21074004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:34:36 +00:00
bmeurer@chromium.org
9f8d162471
Fix broken HCheckInstanceType::Canonicalize().
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21488002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:27:46 +00:00
dslomov@chromium.org
d208eea478
Speed-up 'new TypedArray(arrayLike)'.
...
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.
Allocate backing store uninitialized in cases when we can guarantee
complete initialization.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21369002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:19:51 +00:00
bmeurer@chromium.org
a4c072ed47
Fix a crash when generating forward jumps to labels at very high assembly offsets
...
The first jump to a specific label was marked as jump to absolute
position -4. This value was stored in the assembly as a branch to a
offset (-4 - (instruction offset + 8)). The offset is only 24 bit
long on ARM. Thus instruction offsets higher than 2^23 - 12 would overflow
the offset.
Fix by denoting the first jump to a label by storing the jump
instruction location as the target. This will result in offset of -8,
which of course always fits in the branch instruction.
BUG=2736
TEST=cctest/test-assembler-arm/17
R=bmeurer@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17116006
Patch from Kimmo Kinnunen <kkinnunen@nvidia.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:13:08 +00:00
hpayer@chromium.org
68271ddc0e
Print HAllocate flags in --trace-hydrogen.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21374004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 07:56:36 +00:00
verwaest@chromium.org
e53471dbaa
Remove elements transitions from the transition array.
...
This is preparatory work for reordering the transition tree. Since elements transitions will be at the root of the transition tree, runtime access to them is slow since we have to walk the transition tree backwards first. Hence remove the optimization that promoted them to a special field, requiring a pointer (mostly NULL) in every non-simple transition array.
R=titzer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21228002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 17:08:50 +00:00
danno@chromium.org
04a9f00238
Make sure that bce creates constants of right type
...
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21371004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 16:41:51 +00:00
danno@chromium.org
e5e0100504
Fix overzealous casting that erroneously lead to ASSERTs
...
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21372002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 15:40:24 +00:00
danno@chromium.org
4cdffbf4fe
Improve instruction creating/adding shorthand in HGraphBuilder
...
Add multi-argument templates for New, NewUncasted, Add and AddUncasted that
call boilerplate HInstruction::New methods rather than the constructor directly.
This allows for automatic passing of the zone and context for instructions that
need them.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/21356002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 14:58:39 +00:00
bmeurer@chromium.org
8c0f2eabbf
Stores to external references don't need write barriers.
...
This also applies to stores with an external field representation.
Also cleans up the CreateAllocationSiteStub.
R=mstarzinger@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/21357003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 13:45:51 +00:00
ulan@chromium.org
7ad3db7485
Fix SHL when shift amount is zero for arm and mips.
...
BUG=v8:2817
R=titzer@chromium.org
TEST=octane
Review URL: https://chromiumcodereview.appspot.com/21358002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:46:54 +00:00
dslomov@chromium.org
693301702b
Reimplement TypedArray.set in Javascript.
...
Implement all cases for TypedArray.set in Javascript, except the case
where memmove is used. This makes it many times faster.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:10:49 +00:00
bmeurer@chromium.org
44e4c2756a
Avoid the use of set_type() in instruction constructors.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/21348002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:56:46 +00:00
bmeurer@chromium.org
8823e8e89f
Get rid of HLinkObjectInList.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/21345002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:47:44 +00:00
verwaest@chromium.org
3143f5f88b
Remove special handling of fields in combination with elements transitions in Crankshaft.
...
Instead first try to keep ICs monomorphic if elements kinds generalize. If that fails, use standard polymorphic handling. The Try*PolymorphicAsMonomorphic methods will automatically produce code similar to the previous approach using CheckMapsWithTransitions.
BUG=
R=hpayer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21107004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:08:05 +00:00
bmeurer@chromium.org
843cf1f654
Compile fix for older GCCs.
...
TBR=titzer@chromium.org
Review URL: https://codereview.chromium.org/21142007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:03:59 +00:00
bmeurer@chromium.org
bacc626f57
Fix HType handling for HConstant with external references.
...
We cannot use set_type() with HType::None() in the HConstant
constructor, since set_type() asserts that the new type is a
subtype of the previous one, but HType::None() is not a subtype
of HType::Tagged() which is the initial type set by the HValue
constructor.
This patch adds an optional type parameter to the HValue,
HInstruction and HTemplateInstruction constructors.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/21317004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:38:37 +00:00
titzer@chromium.org
d87296eb1f
Eagerly set the types of many kinds of hydrogen instructions.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/21072002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:29:30 +00:00
mstarzinger@chromium.org
a1c7478a38
Fix stale unhandlified value in JSObject::SetPropertyForResult.
...
R=danno@chromium.org
BUG=chromium:265894
Review URL: https://codereview.chromium.org/21177003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 08:51:18 +00:00
bmeurer@chromium.org
e9fcf8fc98
Revert the latest set of platform changes.
...
Revert "Fix NaCl build."
Revert "Revert target arch detection."
Revert "Fix typo."
Revert "Simplify implementation of Mutex."
Revert "Fix for older clang releases that lack __has_extension."
Revert "Reland initial bits of "Implement correct OS and CC detection.""
TBR=danno@chromium.org ,svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21095008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:51:46 +00:00
dcarney@chromium.org
a5e87c8459
make Intl non-enumerable
...
R=jochen@chromium.org , svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21213003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:34 +00:00
hpayer@chromium.org
2bd5405dc2
Free slots buffer entries when tearing down the heap.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21216003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:03 +00:00
bmeurer@chromium.org
662958c56c
Fix NaCl build.
...
TBR=machenbach@chromium.org ,svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21336002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:08:52 +00:00
bmeurer@chromium.org
ae2c2ad46d
Revert target arch detection.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21243004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:04:30 +00:00
hpayer@chromium.org
b6a6fc76dc
Allocation space decisions are precisely made in hydrogen.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21089006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:03:16 +00:00
bmeurer@chromium.org
dff0e84b1b
Fix typo.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21333002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 06:56:02 +00:00
haitao.feng@intel.com
e0eaee29d3
Introduce StackOperandForReturnAddress operand for X64 to access return address in the stack
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/20628003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 00:19:32 +00:00
haitao.feng@intel.com
e4cdcc6576
Introduce the SetFp function in StackHandler
...
The FP setting is different for X32 than the other platforms as
kFPOnStackSize is double the kPointerSize and we have to clear the
higher 32 bits to 0.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/20073004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 23:59:55 +00:00
palfia@homejinni.com
bfc98bc0c8
MIPS: Fix flaky mjsunit/harmony/generators-iteration test failure.
...
This fixes the result allocation in EmitCreateIteratorResult,
when a GC is required. The Runtime call returns the allocated
pointer in v0 register, but the rest of the function was
expected it in a0 register. Refactored the function to use v0 for
the result in the whole function.
BUG=
Review URL: https://codereview.chromium.org/21244003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 22:28:54 +00:00
bmeurer@chromium.org
64bfd42a4c
Simplify implementation of Mutex.
...
Also moves Mutex to its own file mutex.{cc,h}.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21087012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:12:49 +00:00
mstarzinger@chromium.org
96fc677d25
Pipe a script's CORS status through V8 during compilation.
...
In order to properly sanitize exception data during a 'window.onerror'
handler, we need to know whether a script was served with proper CORS
headers at the time it was loaded into V8. This patch adds a single bool
to ScriptOrigin, and pipes that through the compiler to land on the
Script object. We can then retrieve the parameter when calling the
embedder's exception callback.
BUG=crbug.com/159566
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20646006
Patch from Mike West <mkwst@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:05:50 +00:00
mstarzinger@chromium.org
8a019050ff
Reland "Compilation type and state allocate an unnecessary Smi on v8::Script" (r15940).
...
It turns out that this change is not related to the test failures.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/21256003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:00:05 +00:00
verwaest@chromium.org
2af164f4d9
Mark maps as unstable if their instances potentially transition away.
...
Use this as a prerequisite for adding code dependencies.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21095005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:58 +00:00
mstarzinger@chromium.org
0627d433b0
Add new Harmony methods to String.prototype object.
...
String.prototype.repeat
String.prototype.startsWith
String.prototype.endsWith
String.prototype.contains
http://people.mozilla.org/~jorendorff/es6-draft.html
BUG=v8:2796,v8:2797,v8:2798,v8:2799
TEST=mjsunit/string-repeat,mjsunit/string-startswith,mjsunit/string-endswith,mjsunit/string-contains
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21014007
Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:08 +00:00
bmeurer@chromium.org
306d944e3e
Fix for older clang releases that lack __has_extension.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21237002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 14:49:44 +00:00
titzer@chromium.org
0af94e4ac4
Don't generate a shift left by one if can deoptimize on ia32 and arm and mips.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/21196006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 13:30:03 +00:00
danno@chromium.org
f3fff3c2f4
Revert 15940: "Compilation type and state allocate an unnecessary Smi on v8::Script."
...
Due to Mozilla test failures on Win32 debug
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/21062004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:24:11 +00:00
danno@chromium.org
570138742e
Prepare push to trunk. Now working on version 3.20.12.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/21103009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:08:56 +00:00
bmeurer@chromium.org
a59d3ba977
Reland initial bits of "Implement correct OS and CC detection."
...
This adds the OS and CC detection and cleans up the globals.h to
some degree. It also places all of the C++11 feature detection into
globals.h.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21223003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:36:58 +00:00
bmeurer@chromium.org
82e4ba6f70
Turn mark deoptimize on undefined into a proper HPhase.
...
This patch also removes the implicit recursion on phi operands,
using a loop and a worklist instead, to avoid potential stack
overflows.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/21065003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:25:20 +00:00
verwaest@chromium.org
f328c2c77c
HasNonSmiUse should ignore tagged uses
...
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21105006
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 09:06:42 +00:00
mstarzinger@chromium.org
3202e1d795
Re-revert "Flush parallel recompilation queues on context dispose notification" (r15883).
...
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/21156009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 08:35:48 +00:00
svenpanne@chromium.org
31e56df122
Prepare some ValueOf renamings.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20992005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:05:15 +00:00
yurys@chromium.org
6ba502fa4d
Simplify sampling rate calculation
...
Sampling rate is now calculated as total number of samples divided by profiling time in ms. Before the patch the sampling rate was updated once per 100ms which doesn't have any obvious advantage over the simpler method.
Also we are going to get rid of the profile node self and total time calculation in the v8 CPU profiler and only expose profiling start/end time for CpuProfile and number of ticks on each ProfileNode and let clients do all the math should they need it.
BUG=None
R=bmeurer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/21105003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:01:16 +00:00
haitao.feng@intel.com
1f9dc8b1bf
This patch is to support Vtune on Android platform.
...
The Vtune API provides the support for Android platform. So we fix the
compilation issue and it works on Android platform.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/20688002
Patch from Chunyang Dai <chunyang.dai@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 01:01:04 +00:00
yurys@chromium.org
c301f8203c
Remove unused methods from RuntimeProfiler
...
Also removed Logger fields that used to be used for writing compressed logs.
BUG=None
R=bmeurer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/20768002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 19:02:16 +00:00
mstarzinger@chromium.org
9f4fc77e1e
Compilation type and state allocate an unnecessary Smi on v8::Script.
...
This patch combines them into a single field, and adjusts the accessors
and setters to take the enum type directly, rather than converting to and
from a Smi value.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20758002
Patch from Mike West <mkwst@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:59:02 +00:00
verwaest@chromium.org
4ab26b7ed4
Revert "Smi-support for HSar."
...
Reverting https://chromiumcodereview.appspot.com/21049003
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21076003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:17:19 +00:00
verwaest@chromium.org
480729ff79
Smi-support for HSar.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21049003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:07:28 +00:00
bmeurer@chromium.org
b019910a38
This adds generic support for ExternalReferences in Hydrogen (and Lithium), as required for AddIncrementCounter.
...
R=danno@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/19562003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 13:56:51 +00:00
titzer@chromium.org
37ee4a0369
Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode.
...
BUG=
R=mstarzinger@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20241005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:35:43 +00:00
bmeurer@chromium.org
e3901e919d
Revert new OS and CC detection and related changes since r15923.
...
Revert "Attempt to fix leftover test breakage on Mac."
Revert "Fix d8 build error when V8_SHARED is unset on Linux."
Revert "Fix V8_GNUC_PREREQ macro."
Revert "Fix typo."
Revert "Implement correct OS and CC detection."
TBR=svenpanne@chromium.org ,danno@chromium.org
Review URL: https://codereview.chromium.org/21022003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:12:39 +00:00
danno@chromium.org
837276829e
Fix HasResult method of LTemplateInstruction to properly handle LCheckSmi
...
LCheckSmi sometimes has a result register and sometimes not, even though its
LTemplateInstruction alwasys has room for one. Debug output use HasResult to
determine whether it was ok to de-ref result(), but HasResult doesn't check for
the case where LTemplateInstruction has a result but it's NULL.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:57:42 +00:00
danno@chromium.org
504f94fcbd
Make it easier to get JS stack crawls from gdb
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/21060002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:56:45 +00:00
mvstanton@chromium.org
e9cc78af7e
Fix for V8 issue 2795: Check fails with deopt for mjsunit/array-store-and-grow
...
(https://code.google.com/p/v8/issues/detail?id=2795 )
The reason is when allocating and building arrays in hydrogen we need to ensure
we do any int32-to-smi conversions BEFORE the allocation. These conversions can
at least theoretically deoptimize. If this happens before all the fields of the
newly allocated object are filled in, we will have a corrupted heap.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/20726002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:50:39 +00:00
bmeurer@chromium.org
41a4831fd9
Attempt to fix leftover test breakage on Mac.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21030003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:38:34 +00:00
bmeurer@chromium.org
4d56810eeb
Fix d8 build error when V8_SHARED is unset on Linux.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21053002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 10:23:07 +00:00
bmeurer@chromium.org
ac5e3e080c
Fix V8_GNUC_PREREQ macro.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21049004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:56:34 +00:00
titzer@chromium.org
f403969d1f
Remove Uninitialized from HType.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/20711002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:42:57 +00:00
bmeurer@chromium.org
45e77c2b66
Fix typo.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21045002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:29:00 +00:00
bmeurer@chromium.org
2e7193f897
Implement correct OS and CC detection.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20734002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:19:10 +00:00
bmeurer@chromium.org
709012021a
The compiled_transitions flag was enabled for quite some time now and seems to work out quite well, so time has come to remove the obsolete code paths and remove the unused methods.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18034024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:12:16 +00:00
bmeurer@chromium.org
3126012664
Really fix break in r15919 now.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21040002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:33:57 +00:00
bmeurer@chromium.org
0f5178dcba
Fix break in r15919.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/21029003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:07:52 +00:00
bmeurer@chromium.org
c147c58c59
Properly implement OS::GetRandomMmapAddr() for Win32.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20953002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:50:56 +00:00
danno@chromium.org
c1e7d38f49
Prepare push to trunk. Now working on version 3.20.11.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/20987004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:45:01 +00:00
palfia@homejinni.com
7ac6d35d1d
MIPS: Fix debug mode webkit failures.
...
* Handles SMI case in EmitLoadRegister correctly.
* Fix minor mistake in the assembler.
BUG=v8:2808
TEST=webkit/dfg-dead-min-two-args,webkit/fast/js/excessive-comma-usage
Review URL: https://codereview.chromium.org/20801003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-27 01:07:53 +00:00
palfia@homejinni.com
bac2da6421
MIPS: Add Smi support to Shl
...
Port r15910 (8e65c434)
BUG=
Review URL: https://codereview.chromium.org/20808004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 23:56:03 +00:00
loislo@chromium.org
141ada02f2
Logger: introduce abstract interface for CodeEvent listeners.
...
New abstract class CodeEventListener was created.
CodeEventLogger which is the base class for Jit, LowLevel
and CodeAddressMap loggers was inherited from CodeEventListener.
CodeAddressMap class was moved to serializer.cc because serializer is the only user for it. Actually it collects code names and pushes them to the standard log as SnapshotCodeNameEvent. So I extracted this code into separate function CodeNameEvent. It happens that this method works only when Serializer serializes an object. So I added direct log call there.
CodeEventLogger class declaration was moved to the header
because CodeAddressMap needs it.
The code for the nested class CodeEventLogger::NameBuffer was left in the cc file.
CpuProfiler now is inherit CodeEventListener but not used
the loggers infrastructure yet due to the complex initialization schema. I'd like to fix that in a separate cl.
BUG=none
TEST=current test set.
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19724007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:50:23 +00:00
verwaest@chromium.org
7471ae893e
Add Smi support to Shl
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20323002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:35:44 +00:00
yurys@chromium.org
630999d1a2
Remove --prof-auto flag
...
There is already --prof-lazy flag which should be enough.
BUG=None
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/20482003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:18:56 +00:00
yangguo@chromium.org
b62a6d0e2e
Do not allow external strings in old pointer space.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/20723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:32:06 +00:00
verwaest@chromium.org
565699669e
Fix Smi-based MathMinMax on x64, and reenable smi mode.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20706002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:06:22 +00:00
yangguo@chromium.org
372763897d
Lazy call to custom stack trace formatting using Error.prepareStackTrace.
...
This enables custom stack trace formatting for stack overflow.
A consequence is that stack trace formatting is now easily observable,
but we already established that the default stack trace formatting can
be observed anyways. It is only triggered by the .stack getter, and
it has to be explicitly called, (e.g. not implicitly after GC).
R=mstarzinger@chromium.org
BUG=v8:2559
Review URL: https://codereview.chromium.org/20692002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:28:08 +00:00
mstarzinger@chromium.org
aded201670
Revert "Check that ExternalString objects get aligned resources" (r15894).
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/20703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 10:40:00 +00:00
jkummerow@chromium.org
a6a1163036
Prepare push to trunk. Now working on version 3.20.10.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/20697002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:22:45 +00:00
mstarzinger@chromium.org
40d5faea73
Check that ExternalString objects get aligned resources.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/20305004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:02:34 +00:00
jkummerow@chromium.org
e9046dccb3
Disable Smi representation support for HMathMinMax
...
because it's incomplete on x64.
BUG=v8:2808
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/20690002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:43 +00:00
bmeurer@chromium.org
90249cf92b
Inline platform-tls*.h files into platform.h.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20684002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:07 +00:00
palfia@homejinni.com
61a78e2a11
MIPS: Adding Smi support to Add, Sub, Mul, and Bitwise
...
Port r15879 (ec1e278b)
BUG=
Review URL: https://codereview.chromium.org/20407002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:57:10 +00:00
palfia@homejinni.com
c12a0774ea
MIPS: New array bounds check elimination pass (focused on induction variables and bitwise operations).
...
Port r15866 (52e8581c)
BUG=
Review URL: https://codereview.chromium.org/20393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:55:55 +00:00
jochen@chromium.org
0826f85a02
Put object templates of the i18n extension on the heap object.
...
Using function local statics doesn't work, as we need the templates per
isolate.
I'm not #ifdef'ing the definitions out, because kEmptyStringRootIndex
changes depending on whether the two additional slots are present or
not.
BUG=v8:2745
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20299002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 16:01:02 +00:00
m.m.capewell@googlemail.com
cc9398cd42
ARM: Make double registers low/high safe
...
This patch prevents taking the low/high part of a double-precision VFP register that has no corresponding single-precision VFP registers.
BUG=none
TEST=Added to test-disasm-arm.cc, test-assembler-arm.cc
Review URL: https://codereview.chromium.org/19560003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:38 +00:00
jkummerow@chromium.org
32e2e37230
Fix JSArray-specific length lookup in polymorphic array handling
...
BUG=chromium:263276
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/20295005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:21 +00:00
yangguo@chromium.org
14e205e9cf
Reland "Flush parallel recompilation queues on context dispose notification."
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19500022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:01:23 +00:00
mstarzinger@chromium.org
f06f57f7fb
Make standalone D8 trace to single hydrogen.cfg file.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/20204005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 14:11:53 +00:00
verwaest@chromium.org
8e719ea472
Remove support for smi-based keyed accesses on 64bit.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20298002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:22:23 +00:00
hpayer@chromium.org
b832d8e089
Ignore external strings in old pointer space migration invariant check.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/20142008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:10:45 +00:00
verwaest@chromium.org
5de783d47e
Adding Smi support to Add, Sub, Mul, and Bitwise
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20070005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 11:53:38 +00:00
bmeurer@chromium.org
69fe1ff281
Don't duplicate OS::ActivationFrameAlignment() for every POSIX platform.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:49:28 +00:00
titzer@chromium.org
5dd517ff3b
Move representation into HObjectAccess and remove from HLoadNamedField and HStoreNamedField.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18503006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:37:52 +00:00
bmeurer@chromium.org
0da0309128
Drop redundant GetRandomMmapAddr() in platform-openbsd.cc.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20284002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:28:21 +00:00
bmeurer@chromium.org
401af139b5
Don't duplicate OS::CpuFeaturesImpliedByPlatform for every POSIX platform.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20179004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 09:16:39 +00:00
bmeurer@chromium.org
e1b36b3b6b
Don't duplicate ceiling() for every POSIX platform.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20274002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:49:52 +00:00
hpayer@chromium.org
09b1b9e4d5
Removed pointer space to pointer space compaction check when migrating objects.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/20279002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:44:40 +00:00
yangguo@chromium.org
f5e6fbef6e
move 32 bit heap hint on sunos
...
Setting the V8 heap at or near 0x20000000 on 32bit sunos only allows
512 MB of heap space, instead on sunos move this to 0x80000000.
To quote the comment
For our Solaris/illumos mmap hint, we pick a random address in the bottom
half of the top half of the address space (that is, the third quarter).
Because we do not MAP_FIXED, this will be treated only as a hint -- the
system will not fail to mmap() because something else happens to already
be mapped at our random address. We deliberately set the hint high enough
to get well above the system's break (that is, the heap); Solaris and
illumos will try the hint and if that fails allocate as if there were
no hint at all. The high hint prevents the break from getting hemmed in
at low values, ceding half of the address space to the system heap.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19859008
Patch from Timothy J. Fontaine <tjfontaine@joyent.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:06:13 +00:00
bmeurer@chromium.org
71c563f8e3
Drop leftover unused kNoThread in platform-openbsd.cc.
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20256003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:04:45 +00:00
bmeurer@chromium.org
3b8c7ffa61
Setting the thread name may fail, so don't assert that the result is 0.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/20216003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 08:00:32 +00:00
mmassi@chromium.org
fbc7770702
Added missing header.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20264002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 06:49:53 +00:00
mmassi@chromium.org
b5a43f48a6
New array bounds check elimination pass (focused on induction variables and bitwise operations).
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/17568015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 06:37:25 +00:00
dslomov@chromium.org
a418b36b75
Make DataView setters throw when only offset is provided.
...
Also fix typo in error message id.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/20030004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 17:35:15 +00:00
palfia@homejinni.com
2a680c59d2
MIPS: Convert CONSTANT_FUNCTION to CONSTANT
...
Port r15858 (e3a6d2a)
BUG=
Review URL: https://codereview.chromium.org/19847003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 15:41:00 +00:00
yangguo@chromium.org
67acbd6a62
Allow handle dereference for --print-code.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/20040004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 14:28:56 +00:00
haitao.feng@intel.com
2f4b0e31bd
Add the emitp function for X64 assembler
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19752004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 13:50:45 +00:00
dcarney@chromium.org
323f15c5a9
wrap gc callbacks in handlescopes
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19845007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:50:53 +00:00
titzer@chromium.org
54cc492225
Add --trace-hydrogen-stubs flag (default = false).
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20084003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:38:52 +00:00
verwaest@chromium.org
6b83c868f0
Convert CONSTANT_FUNCTION to CONSTANT
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19485008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:34:50 +00:00
svenpanne@chromium.org
2d6fa933e0
More Math.abs tweaks for Intel platforms.
...
Made ia32/x64 code more uniform. Minor jump tweaks.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20067003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:17:45 +00:00
yangguo@chromium.org
eaedafad4b
Restore test and behavior prior to deferred stack trace formatting.
...
R=mstarzinger@chromium.org
TEST=stack-traces-overflow.js
Review URL: https://codereview.chromium.org/19805003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:16:02 +00:00
titzer@chromium.org
f612a29f8c
Factor out common code from platform-specific deoptimization. Fix Deoptimizer not to need to partition functions, but revoke their code before patching, allowing deoptimizing_code_list to be removed from Code; Add DeoptimizeCodeList API to deoptimizer, which works on a ZoneList<Code*>.
...
BUG=
R=mstarzinger@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/19638014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 11:12:17 +00:00
titzer@chromium.org
82a54b0077
Remove HCompareConstantEqAndBranch (never used), and its corresponding Lithium instructions.
...
BUG=
R=bmeurer@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19691005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 10:48:16 +00:00
hpayer@chromium.org
d6126a0a48
Added check to debug object migration crashes.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/20055002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 09:19:55 +00:00
hpayer@chromium.org
92ce527203
Objects can no longer be migrated or evacuated into large object space.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19959007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:50:03 +00:00
svenpanne@chromium.org
564381281b
Removed usesless test instruction.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19647019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:32:21 +00:00
yangguo@chromium.org
72d2c92d5f
Prepare push to trunk. Now working on version 3.20.9.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/20066007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:17:32 +00:00
mstarzinger@chromium.org
3cdeb2f9cd
Avoid adding HWrapReceiver during graph building.
...
This adds an early check to the graph builder which prevents adding an
HWrapReceiver instruction if the receiver type is already known at graph
building time. Also HAllocate no longer unnecessarily postpones setting
it's type until type inference but sets it right away. These changes are
in preparation for escape analysis.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/19493005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:05:49 +00:00
jkummerow@chromium.org
b7369c38ec
Fix assert/crash in HandlePolymorphicCallNamed
...
R=jkummerow@chromium.org
TEST=Ryan Sturgell's test runs through without crashing
Review URL: https://codereview.chromium.org/20051008
Patch from Daniel Clifford <danno@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 08:00:52 +00:00
yangguo@chromium.org
6cbe01edae
Revert "Flush parallel recompilation queues on context dispose notification."
...
This reverts r15833.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19647018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 07:45:54 +00:00
hpayer@chromium.org
c3c0be7160
Simplified large object allocation strategy.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19934006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 20:01:38 +00:00
hpayer@chromium.org
6c83b7d6c1
Support double allocations when folding allocation.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19956002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 19:27:00 +00:00
hpayer@chromium.org
3c0483af52
Fix TargetSpace() method for box type.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19978003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 19:05:00 +00:00
yangguo@chromium.org
f70cc6e114
Flush parallel recompilation queues on context dispose notification.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19956004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:15:00 +00:00
yurys@chromium.org
97f8f91bb5
Fix call stack sampling for the case when native callback invokes JS function
...
The SafeStackFrameIterator used by CPU profiler checked if Isolate::c_entry_fp is null and if it is not it would think that the control flow currently is in some native code. This assumption is wrong because the native code could have called a JS function but JSEntryStub would not reset c_entry_fp to NULL in that case. This CL adds a check in SafeStackFrameIterator::IsValidTop for the case when there is a JAVA_SCRIPT frame on top of EXIT frame.
Also this CL changes ExternalCallbackScope behavior to provide access to the whole stack of the scope objects instead of only top one. This allowed to provide exact callback names for those EXIT frames where external callbacks are called. Without this change it was possible only for the top most native call.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19775017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 15:01:38 +00:00
palfia@homejinni.com
f48a8d1ca4
MIPS: Eliminate map checks of constant values.
...
Port r15819 (a453a0e)
BUG=
Review URL: https://codereview.chromium.org/19876006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 14:29:04 +00:00
bmeurer@chromium.org
cb055f1732
Avoid duplication of OS::Thread methods for every POSIX platform.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19490010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:47:50 +00:00
haitao.feng@intel.com
875fd8424b
Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
...
BUG=None
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19802002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:46:10 +00:00
yurys@chromium.org
682a0d65c6
Deprecate v8::V8::Pause/ResumeProfiler
...
The methods were added to the public API in r1185 when Chrome DevTools were using the same output as produced for tick processor when --prof option is specified.
I don't see any existing clients of these methods and since they add a noticeable complexity to the profiler code I'd like to remove them.
BUG=None
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19591006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:44:15 +00:00
danno@chromium.org
8cbbdd066c
Unify SoftDeoptimize and Deoptimize hydrogen instructions
...
BUG=chromium:258519
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19528003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:35:10 +00:00
haitao.feng@intel.com
fa037d1602
Revert "Addressed danno's comments" and "Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants"
...
BUG=None
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19483007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:30:44 +00:00
haitao.feng@intel.com
24e0d7f860
Addressed danno's comments
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:01:59 +00:00
haitao.feng@intel.com
a9253143de
Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 13:01:42 +00:00
verwaest@chromium.org
7e08f81e6d
Also eliminate map checks with transitions.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19888006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 10:01:06 +00:00
bmeurer@chromium.org
558c42373d
Fix duplicated methods for POSIX platforms.
...
No need to duplicate OS::NumberOfCores() for every POSIX platform.
No need to duplicate OS::Sleep() for every POSIX platform.
No need to duplicate OS::Abort() and OS::DebugBreak() for every POSIX platform.
No need to duplicate OS::Free() for every POSIX platform.
Move #ifdef'd OS::ProtectCode() and OS::Guard() to platform-posix.cc.
No need to duplicate OS::AllocateAlignment() for every POSIX platform.
No need to duplicate OS::PostSetUp() for every POSIX platform.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/20014005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:59:14 +00:00
verwaest@chromium.org
babce318d1
Eliminate map checks of constant values.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19954005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:18:42 +00:00
olivf@chromium.org
b8d7bee4a3
Avoid tagged values for Instructions that truncate the operands with ToNumber.
...
I case the ToNumber is applied to a non numeric value but its not observable (some constants and oddballs) we should already do it in hydrogen...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/19798002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 09:13:59 +00:00
loislo@chromium.org
ecd807b980
Move CpuProfiler code create events behind Logger code api.
...
CpuProfiler has almost the same api for CodeCreate* events
but it was calling separately.
BUG=260203
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19916002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 08:12:15 +00:00
yangguo@chromium.org
925375520c
Rip out infrastructure for deferred stack trace formatting.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19971002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 07:41:46 +00:00
yangguo@chromium.org
5aa717a0ad
Cosmetic changes.
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19962005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 07:31:46 +00:00
bmeurer@chromium.org
c4f77b3e40
Turn ToNumberStub into a hydrogen code stub.
...
R=danno@chromium.org , hpayer@chromium.org
Review URL: https://codereview.chromium.org/19793005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 06:02:54 +00:00
palfia@homejinni.com
439a425676
MIPS: Ensure space for lazy deoptimization before calling IC.
...
Port r15808 (cc16b500)
Original commit message:
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.
BUG=
Review URL: https://codereview.chromium.org/19647007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 22:00:41 +00:00
palfia@homejinni.com
d6e54c5f58
MIPS: Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.
...
Port r15798 (3b92806)
BUG=
Review URL: https://codereview.chromium.org/19485006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 18:16:44 +00:00
ulan@chromium.org
b2dd5c67f7
ARM: Ensure space for lazy deoptimization before calling IC.
...
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.
R=verwaest@chromium.org
BUG=247688
TEST=mjsunit/regress/regress-247688.js
Review URL: https://chromiumcodereview.appspot.com/19972002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 17:21:41 +00:00
verwaest@chromium.org
b94d2cd610
Add fixed array to Type::LubBitset
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19960002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 15:27:38 +00:00
verwaest@chromium.org
46ca825561
Avoid repeated rewrites of global store to constant IC due to store of same value.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19663007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 14:15:58 +00:00
verwaest@chromium.org
a6c0ae417e
Exclude const-strings from global constant tracking.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19576008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:43:01 +00:00
hpayer@chromium.org
067d921cc0
Limit the amount of memory that can be folded together.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19804002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:34:23 +00:00
verwaest@chromium.org
d816fd1333
Track all non-hole global constants.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19784004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 12:15:13 +00:00
hpayer@chromium.org
ecc31a0cee
Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19723004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 11:07:43 +00:00
mvstanton@chromium.org
f59c36589d
In MacroAssembler::JumpIfNotBothSequentialAsciiStrings a custom mask
...
helps us decide if we have two ascii strings. We don't care if they
are internalized or not. A few days ago we flipped the meaning of the
internalized bit in INSTANCE_TYPE, and that broke this custom mask.
This CL effects a repair.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19514004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:55:14 +00:00
jkummerow@chromium.org
b43a3c85ad
Prepare push to trunk. Now working on version 3.20.8.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19933002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:19:43 +00:00
yangguo@chromium.org
cd41cb9b6d
Turn on parallel recompilation for tests that assert optimization status.
...
R=mvstanton@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19807002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 09:16:33 +00:00
mstarzinger@chromium.org
ce81b0d3a8
ES6: Implement WeakSet
...
WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.
This is available under --harmony-collections
BUG=v8:2785
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19678023
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:32:24 +00:00
bmeurer@chromium.org
44f576ba65
Replace BuildExternalArrayElementAccess() with AddExternalArrayElementAccess().
...
This is trivial cleanup. All calls to BuildExternalArrayElementAccess()
pass the result to AddInstruction().
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19658004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:20:47 +00:00
bmeurer@chromium.org
e8a7302ec4
Add AssertSmi() in x64 MacroAssembler::SmiTest().
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19647006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 07:09:13 +00:00
bmeurer@chromium.org
1b73068626
Replace BuildFastElementAccess() with AddFastElementAccess().
...
This is trivial cleanup. All calls to BuildFastElementAccess() pass
the result to AddInstruction().
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19759003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 07:00:46 +00:00
bmeurer@chromium.org
fe83bc3622
Fix invalid SMI test in x64 ToNumberStub::Generate().
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19927002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 06:13:45 +00:00
bmeurer@chromium.org
9364d9740e
Unify SMI case inlining for ToNumberStub.
...
Use ShouldInlineSmiCase() on arm, mips and x64 similar to the ia32 port.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/19489003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 05:50:10 +00:00
jkummerow@chromium.org
0963c220b1
Revert "Implement simple effect typing for variables" and "Handle switch effects".
...
This reverts r15776 and r15777 due to compile failures on Chromium Mac bots.
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/19482016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 19:55:09 +00:00
loislo@chromium.org
24dec186b4
Logger: reorder methods in log.cc
...
No logic changes.
BUG=none
TEST=current test set
TBR=yurys@chromium.org
Review URL: https://codereview.chromium.org/19724004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 15:57:18 +00:00
loislo@chromium.org
19fdbc2653
Logger: extract CodeEventLogger classes.
...
The idea is to extract all the CodeEvent loggers into separate classes
make an interface for code events and put them into a listeners array.
I extracted code that works with name_buffer into a separate base class CodeEventLogger.
And made JitLogger, LowLevelLogger and new CodeMap its descendants.
As a side effect I converted NameBuffer into nested class of CodeEventLogger
and converted NameMap into nested class of CodeMap.
BUG=260203
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19795002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:58:53 +00:00
palfia@homejinni.com
a9c074b8ee
MIPS: With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test.
...
Port r15773 (60aa9f0)
Original commit message:
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358 ) But that change caused a regression, so here is an improvement:
Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.
BUG=
Review URL: https://codereview.chromium.org/19723008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:56:43 +00:00
palfia@homejinni.com
4c3269a43d
Fix unaligned accesses in back_edge tables.
...
This patch fixes the step size of masm->pc_ in back_edge tables to words (4 bytes) to ensure 4 bytes alignment for read/write operations. Read and write of words (4 bytes) data from aligned space (address % 4 == 0) is more efficient on all platforms and especially on MIPS where without this alignment fix a kernel exception handler is used for every unaligned access.
This patch increases the size of back_edge tables by 3 bytes in every row. By the test it seem the back_edge table quite small in every/most cases (maximal length is 18 so in that case there are only 54 additional bytes with this patch).
BUG=
Patch from Douglas Leung <Douglas.Leung@imgtec.com>
Review URL: https://codereview.chromium.org/19248002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:46:23 +00:00
rossberg@chromium.org
ac2b8c04f3
Proxies: Make 'with' work, plus minor other fixes
...
Also fixes internal exception handling in several places of the runtime.
R=yangguo@chromium.org
BUG=v8:1543
Review URL: https://codereview.chromium.org/19384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 14:07:23 +00:00
ulan@chromium.org
88a4b0d6ca
Fix deopt in store with effect context.
...
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19693004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:45:26 +00:00
mvstanton@chromium.org
ec8c6f4692
Rename AllocationSiteInfo to AllocationMemento
...
This is just a rename change with the exception of a bug found along the way in
CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub(). There, the
intent is to get the boilerplate object from an AllocationSite. But the wrong
HObjectAccess was used. It only succeeds because it happened to be the same
offset :).
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19595004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:30:49 +00:00
rossberg@chromium.org
961d154d99
Handle switch effects
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18926004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:04:41 +00:00
rossberg@chromium.org
02649f08bc
Implement simple effect typing for variables
...
For that, we maintain an abstract store typing of all variables with LOCAL location (i.e., those that do not escape the function's own scope). We treat assignments as sequential effects that modify this store.
When control flow branches, we have to compute the disjunction of possible effects. To that end, we represent the store as a stack of effect sets, such that we can cheaply push and pop "local" effects when control flow has to branch.
In cases of non-local control transfer from an unknown source, we currently erase all knowledge about the store.
The 'switch' statement is still to come.
For a formulation of the typing rules, see:
https://docs.google.com/a/google.com/file/d/0B3wuXSv9YKuKeUNkVXZDemZ0Z1E
;)
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19054006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 12:54:27 +00:00
bmeurer@chromium.org
5e85399572
Cleanup StringAddFlags.
...
Avoid duplication of StringAddFlags in the platform specific code stubs header files.
Fix the inverted flag logic, replacing it with a scheme that is easier to understand.
Depends on: https://codereview.chromium.org/19541003
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19492006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:52:42 +00:00
bmeurer@chromium.org
784e233ea9
Cleanup useless parameter object_is_smi for NumberToStringStub::GenerateLookupNumberStringCache().
...
object_is_smi was always false so there's no need to actually have it.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19541007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:42:57 +00:00
mvstanton@chromium.org
3761e0388d
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. ( https://code.google.com/p/v8/source/detail?r=15358 ) But that change caused a regression, so here is an improvement:
...
Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19749004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:29:11 +00:00
rossberg@chromium.org
83d9e6e7ee
Add support for explicit octal and binary integer literals
...
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-7.8.3
ES6 extends the numeric literals to support explicit support
for binary and octal literals using the following syntax:
0b10101
0o777
This is currently behind the flag, --harmony-numeric-literals
BUG=2783
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/19300002
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:57:35 +00:00
bmeurer@chromium.org
d750a6dcd8
Consistently use HStringAdd instead of HCallStub with CodeStub::StringAdd.
...
Previously there were two ways to actually use the StringAddStub
from Hydrogen:
- Either using HStringAdd (which implied NO_STRING_CHECK_IN_STUB
and and does the argument handling internally),
- or using HCallStub with CodeStub::StringAdd (which implied
NO_STRING_ADD_FLAGS and expected the arguments to be on the
stack already).
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19541003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:42:15 +00:00
svenpanne@chromium.org
00ed79fb8b
Move FindCodeObject from Heap to Isolate.
...
This removes the isolate=>heap=>isolate nonsense and has the additional bonus
that it re-enables printing of code objects in GDB. NOT: To make the latter
work, one has to adapt GDB any macros using FindCodeObject! Keeping things as it
is and outlining Isolate::heap() was not really an option...
Side note: Currently we are lucky that we still have Isolate::Current()
available in GDB, although it is marked as INLINE. :-}
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/19785004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:39:01 +00:00
yurys@chromium.org
260af16ede
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes. Now that Blink is rolled to 154493 it should be safe to land this (required Blink change is 154386).
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19541005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 09:38:18 +00:00
haitao.feng@intel.com
fc5806454d
Use kPointerSize to compute the call instruction offset in the PatchedReturnSequence for X64
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19763010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:49:47 +00:00
verwaest@chromium.org
be472d82fd
Fix wrong bailout id in polymorphic stores.
...
BUG=chromium:259787
R=titzer@chromium.org , ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19528005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:45:47 +00:00
mstarzinger@chromium.org
3eded2c06c
Fix %NeverOptimizeFunction runtime call.
...
The current usage of this runtime function is broken as it does not
prevent inlining of the affected function but rather bails out from the
whole unit of compilation after trying to inline affected functions.
This simplifies said runtime function to avoid accidental misuse.
R=titzer@chromium.org
TEST=mjsunit/never-optimize
Review URL: https://codereview.chromium.org/19776006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:25:44 +00:00
danno@chromium.org
76cbaf407f
x64 support for d-to-i (truncated)
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18333012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:21:41 +00:00
loislo@chromium.org
ea97288e64
Logger: remove dependency between Logger and LogMessageBuilder.
...
LogMessageBuilder is a helper class for Log.
So I made it a nested class and removed the dependency from Logger.
BUG=none
TEST=no changes in the logic
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19768003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 17:19:31 +00:00
svenpanne@chromium.org
607a531435
Do not inline printing functions typically used via GDB.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/19722005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 14:40:59 +00:00
yurys@chromium.org
eeb7452a44
One more Windows compilation fix after r15750
...
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19471006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 14:32:06 +00:00
yurys@chromium.org
56cc999f93
Fix Windows compilation after r15750
...
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19778003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 14:28:00 +00:00
alph@chromium.org
b5fa92eb0a
Add named links to dependent_code in Map objects in heap snapshot.
...
R=loislo@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/19631003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 14:14:56 +00:00
mstarzinger@chromium.org
2165d4008d
Handlify Accessors::FunctionGetArguments method.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19638003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 14:00:53 +00:00
yurys@chromium.org
97681be4e5
Fix data race in SamplingCircularQueue
...
This change fixes data race described in the bug by adding Acquire_Load to SamplingCircularQueue::StartDequeue and Acquire_Store to SamplingCircularQueue::Enqueue.
Also the queue implementation imposed a constraint on the records it stored: the first AtomicWord in each record was a marker. For that purpose TickSampleEventRecord had filter field of type int. This approach is error prone, e.g. on x64 sizeof(AtomicWord) is 8 while sizeof(int) is 4. Moreover the queue needs such marker only at the beginning of chunk. I changed the queue so that it stores the marker explicitly as the first Cell in chunk and removed the filter field.
BUG=251218
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19642002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15750 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 13:42:04 +00:00
loislo@chromium.org
693354a621
Extract JitLogger from Logger class.
...
Second patch from the set.
BUG=260203
TEST=logic wasn't changed
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19761003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 13:18:46 +00:00
danno@chromium.org
05ec5921be
Fix --track_gc_object_stats option.
...
- Update ObjectStatsVisitTracker::Visit function to check if CodeCache is of
CodeCache type, and extract the FixedArray from the struct if so
- Fix typo in v8-counters.h where count_of_FIXED_ARRAY_XXX fields weren't being
initialized.
BUG=v8:2780
R=danno@chromium.org , hpayer@chromium.org
Review URL: https://codereview.chromium.org/19257002
Patch from Ross McIlroy <mcilroy@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 13:00:40 +00:00
yangguo@chromium.org
c86ad36304
Fix GC issue in Runtime_DebugEvaluate.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/19520006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 12:25:22 +00:00
machenbach@chromium.org
01c39159f3
Fix NaCl regression caused by pepper revision 28.
...
Patch from bradchen@chromium.org .
Prevents use of PROT_EXEC for NaCl builds
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19729003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 12:18:35 +00:00
jkummerow@chromium.org
2c7b8cf5c1
Hydrogen array accesses: switch from elements_kind to map based polymorphism
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18209023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 09:46:56 +00:00
bmeurer@chromium.org
4abd57dc2d
Use C++11 deleted functions feature if available.
...
Implement DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS
using C++11 deleted functions if possible.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19728003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 09:25:54 +00:00
svenpanne@chromium.org
b951f03cee
Fixed type feedback in presence of negative lookups.
...
To fix the issue at hand regarding constant function calls and perhaps
other hidden issues regarding negative lookups, we basically add a
"marker instruction", just for harvesting purposes. Our type feedback
oracle is really, really fragile, we should better switch to some more
explicit and robust scheme soon.
BUG=chromium:252797
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19588002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 09:12:44 +00:00
hpayer@chromium.org
ced115b6ae
Double align fast literals of fast double elements kind.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 08:42:03 +00:00
machenbach@chromium.org
f24997c1c7
Make deoptimization stress count global.
...
Store the deopt stress counter per isolate instead of per shared function info. The old field is removed.
Enable output of the counter value with a new flag.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 08:12:01 +00:00
mstarzinger@chromium.org
13f7c56e05
Handlify JSFunction::SetPrototype method.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/19594002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 07:59:48 +00:00
bmeurer@chromium.org
31eeeab30d
Just check for C++ version.
...
This fixes build breakage introduced with r15736.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19671009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 07:50:33 +00:00
bmeurer@chromium.org
aaad82db0e
Use C++11 static_assert() if available.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19684009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 07:43:41 +00:00
yurys@chromium.org
a7d1cb3f2a
Revert "Deprecate some debugger methods"
...
This reverts commit 69957c36edaebe0b9b614099eb1b067fb0208671. Blink roll this patch depends on was reverted for some reason.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19483003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 07:34:19 +00:00
yurys@chromium.org
9f65cf6bff
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19542003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-18 06:51:03 +00:00
palfia@homejinni.com
4e0e41871a
MIPS: Improve code aging sequence.
...
Port r15697 (61d56196)
Original commit message:
The code aging sequence contains a load which is unecessary for optimised
function. This has been replaced by a nop.
BUG=
Review URL: https://codereview.chromium.org/19683005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 23:57:32 +00:00
palfia@homejinni.com
462f6be930
MIPS: The gc should be able to traverse all AllocationSites for decision making.
...
Port r15715 (2e830d4)
Original commit message:
The gc should be able to traverse all AllocationSites for decision making. The sites are threaded into a weak list. Special problems include:
* Allocations of AllocationSites occur in generated code, so generated code needs to be able to add to the list. For now I have a special hydrogen instruction, though it would be nice to use general purpose instructions.
* The snapshot contains AllocationSites, and these need to be re-threaded into the list on deserialization.
Something nice is that the AllocationSites are only created in old space, so a special new space visitor isn't required.
BUG=
Review URL: https://codereview.chromium.org/19635002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 18:39:34 +00:00
alph@chromium.org
86bfd87fa6
Do not report unessential weak references in heap snapshot.
...
R=verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19267023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 18:23:16 +00:00
mstarzinger@chromium.org
dfc945d594
Handlify JSReceiver/JSObject::DeleteProperty method.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18774002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 16:38:49 +00:00
titzer@chromium.org
b1373531ba
Add support for empty hydrogen filter that matches only the top-level JSFunction.
...
BUG=
Review URL: https://codereview.chromium.org/19590002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 16:21:03 +00:00
jkummerow@chromium.org
9ed1fe1ac4
Better fix for LiteralCompareTypeof
...
This reverts r15725 and replaces it with the following one-liner
in hydrogen.cc's HandleLiteralCompareTypeof:
- CHECK_ALIVE(VisitForValue(sub_expr));
+ CHECK_ALIVE(VisitForTypeOf(sub_expr));
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19523005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 15:58:59 +00:00
yangguo@chromium.org
9d6445cf32
Do not materialize context-allocated values for debug-evaluate.
...
BUG=259300
R=ulan@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/19569003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 15:29:00 +00:00
jkummerow@chromium.org
f5cae51e20
Fix LiteralCompareTypeof breakage introduced in r15723
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19556003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 14:58:00 +00:00
olivf@chromium.org
d75b34db33
There is no undefined Literal.
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18429005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 14:10:38 +00:00
jkummerow@chromium.org
22f2fd8397
Synchronize Compare-Literal behavior in FullCodegen and Hydrogen
...
BUG=chromium:260345
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19582002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 13:13:38 +00:00
alph@chromium.org
eafc8c971a
Provide named links to code objects in heap snapshot.
...
R=loislo@chromium.org , verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19397002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 13:12:48 +00:00
bmeurer@chromium.org
871dacd415
Enable compiled transitions by default.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19568002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 12:19:40 +00:00
mvstanton@chromium.org
b9f0c06ab2
The gc should be able to traverse all AllocationSites for decision making. The sites are threaded into a weak list. Special problems include:
...
* Allocations of AllocationSites occur in generated code, so generated code needs to be able to add to the list. For now I have a special hydrogen instruction, though it would be nice to use general purpose instructions.
* The snapshot contains AllocationSites, and these need to be re-threaded into the list on deserialization.
Something nice is that the AllocationSites are only created in old space, so a special new space visitor isn't required.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18173013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:50:24 +00:00
bmeurer@chromium.org
410b4b2db4
Reland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".
...
Fix the invalid array length check, replacing it with a check of
the elements pointer similar to TransitionElementsKindStub.
Refactor common code from ElementsTransitionAndStoreStub and TransitionElementsKindStub into BuildTransitionElementsKind() helper method.
Add test case for the MD5 computation that used to crash before,
and a small test case for the specific issue.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19367003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:37:20 +00:00
dslomov@chromium.org
517cbe4dd3
Add BYTES_PER_ELEMENT property to constructors of typed arrays.
...
ES6 does not prescribe it, but both Blink and Firefox have it.
Also does a small rename of parameter in test.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19562002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:16:07 +00:00
alph@chromium.org
a6087dae80
Report initial_map field of JSFunction in heap snapshot.
...
R=verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19256020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 10:16:40 +00:00
yurys@chromium.org
9a51aa2197
Revert "Deprecate some debugger methods"
...
This reverts commit r15708 to make WebKit bots happy while Blink change https://src.chromium.org/viewvc/blink?view=rev&revision=154386 is not rolled into Chromium.
BUG=None
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19557002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 10:03:49 +00:00
hpayer@chromium.org
a3b856008b
Use private field chunk_
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/19495002
Patch from HaiTao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 09:57:56 +00:00
yurys@chromium.org
16bb1dc210
Deprecate some debugger methods
...
These methods have been superceeded by equivalents accepting object arguments exposing more details.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/19549002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 09:20:16 +00:00
ulan@chromium.org
b75063bea8
Do not call reinterpret_cast when converting from NULL.
...
If NULL is a nullptr (such as on my FreeBSD system), it is not possible to
use reinterpret_cast to convert it to another pointer. Plus, just using NULL
directly achieves the same effect.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19388005
Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:46:44 +00:00
mvstanton@chromium.org
4465c83104
Calls to HCheckFunction can be eliminated if the value is an HConstant.
...
Reland "Calls to HCheckFunction can be eliminated if the value is an HConstant"
(https://codereview.chromium.org/18751003/ ).
The CL failed because of heap snapshot issues. alph@chromium.org just checked in
a fix for that (https://code.google.com/p/v8/source/detail?r=15694 ).
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19504007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:46:01 +00:00
hpayer@chromium.org
29ad06f684
More aggressively inline optimized code.
...
BUG=
R=danno@chromium.org , mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/19504006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:44:10 +00:00
bmeurer@chromium.org
a72b5d6c4d
Fix invalid array length check in TransitionElementsKindStub.
...
The stub used to check the length of the JS array to see if
there's a need to duplicate the elements backing store. This
way it will not duplicate the elements array when going from
double to object even if the elements array is not the empty
fixed array. Later on it will then store pointers into a
FixedDoubleArray.
The native code stub used to check whether elements points to
the empty_fixed_array singleton instead of testing the length.
The Hydrogen stub does that as well now.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19289009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:32:28 +00:00
jkummerow@chromium.org
397163f0c8
Prepare push to trunk. Now working on version 3.20.7.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:19:34 +00:00
rodolph.perfetta@gmail.com
1248321eb5
ARM: Improve code aging sequence.
...
The code aging sequence contains a load which is unecessary for optimised
function. This has been replaced by a nop.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/19379003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:09:52 +00:00
svenpanne@chromium.org
0e99e77143
Removed unused HOptimizedGraphBuilder::BuildCallSetter method.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19235011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:02:08 +00:00
palfia@homejinni.com
fbb8b84039
MIPS: Fix bug introduced by r15640.
...
This bug causes segfault in the octane benchmark,
because the deoptimization entries do not fit in the
deopt table.
This change increases the table entry size.
TEST=octane benchmark
BUG=
Review URL: https://codereview.chromium.org/19381004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 18:02:43 +00:00
alph@chromium.org
09131296ac
Add missing links from GlobalPropertyCell to dependent_code
...
It produced orphan DependentCode nodes because links were not created explicitly in ExtractPropertyCellReferences and IndexedReferencesExtractor was disabled for ProperyCells.
R=danno@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/19368002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 17:47:35 +00:00
verwaest@chromium.org
f24a5d3200
Try to remove invalidated stubs before falling back to checking the constant state.
...
BUG=chromium:260585
R=hpayer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19267019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 14:01:46 +00:00
alph@chromium.org
86ca2c133c
Make TransitionArray internal references originate from TA in heap snapshot.
...
TransitionArray references were added to the TA's map object instead
of TA itself.
R=verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19265002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 12:48:34 +00:00
hpayer@chromium.org
147163fc41
Added mark bit cell iterator.
...
BUG=
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/19182002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 12:14:16 +00:00
yurys@chromium.org
7fee06a6d9
Fix cctest/test-cpu-profiler/FunctionApplySample fakiness on ARM simulator
...
For STM and LDM instuctions with writeback update base register only after all registers have been saved/loaded. This guarantees that invariant sp <= fp is always true when iterating stack in the Sampler.
BUG=v8:2782
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19243002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 09:34:09 +00:00
hpayer@chromium.org
a65cb03955
Added tracing information to the case when allocation folding cannot be performed.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19290008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 08:54:41 +00:00
mstarzinger@chromium.org
f8f5be2366
Minor cleanup of GVN state pushing.
...
R=hpayer@chromium.org , hpayer@google.com
Review URL: https://codereview.chromium.org/19235010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 08:37:49 +00:00
dslomov@chromium.org
11a38ed875
Throw if first argument to TypedArray.set is a number.
...
Further refinement to semantics that I have missed in previous change.
Both Blink and Firefox are permissive with arguments to .set method.
However, when first argument to "set" is a number, all implementations
throw, so that users know that
a.set(0,27)
does not assign 27 to 0th element of a, not 0 to 27th element of a.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19210002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 08:11:30 +00:00
bmeurer@chromium.org
c0637c1828
Use BitVector instead of handcrafted SparseSet.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19272011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 07:07:04 +00:00
adamk@chromium.org
fab9f4e126
[Object.observe] Lazily allocate callbackInfo structure
...
This patch allows callbacks to lazily allocate the InternalArray which is used to store pendingChangeRecords. This moves some of the expense of observation to the case where changes actually occurred.
When there are no pendingChangeRecords, the callbackInfo structure is a number which is the callbacks priority. Whenever a changeRecord is enqueued to the callback, it "normalizes" to be an InternalArray with a priority property. Immediately before its changeRecords are delivered, it returns to its optimized state.
---
Note: Naming confusion resolved:
This patch corrects some naming confusion in object-observe.js. Previously, we used the terms "callback" and "observer" to mean roughly the same thing, and overloaded the term "observer" to be both the callback itself and the *registration* on a object to observe (which now includes an accept map).
This patch resolves this confusion:
"object" (objectInfo, objectInfoMap): This refers to the observed object and its structures
"callback" (callbackInfo, callbackInfoMap): This refers to the callback to whom change records may be delivered
"observer" (objectInfo.changeObservers): This refers to a registration to observe a given object by a given callback with the specified accept list.
---
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/19132002
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 22:16:30 +00:00
machenbach@chromium.org
5e343cd2a9
Make deopt testing compatible with runtime optimization status queries.
...
When deopt testing is activated, a new status code will be returned by optimization status queries (status=maybe deopted).
This will make those tests work that test for 'not status=no', when performing deopt testing.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19184002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 18:47:40 +00:00
hpayer@chromium.org
38a87d2c4a
Revert r15649 and fix for loop dominator propagation in GVN.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19233002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 16:58:20 +00:00
bmeurer@chromium.org
bbb2cf3fac
Disable compiled_transitions by default.
...
This was accidently re-enabled with r15674.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/19229003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 16:56:32 +00:00
danno@chromium.org
5713ca0d8f
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub
...
Causes breakage in crypto-(sha1|md5) SunSpider
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19214002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 15:23:52 +00:00
mstarzinger@chromium.org
35052bc2ea
Reland deprecation of HAllocateObject in favor of HAllocate.
...
This essentially relands r14930 and r14935 with adaptions to the current
code base. It models the instantiation of an implicit receiver for
CallNew nodes in hydrogen using HAllocate together with generic stores
instead of one specialized HAllocateObject instruction, hence creating a
single choking point for inlined allocation in optimized code.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/19207002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 15:12:16 +00:00
rossberg@chromium.org
db76aa2717
Fix sloppy-mode 'const' under Harmony flag.
...
R=yangguo@chromium.org
BUG=173361
Review URL: https://codereview.chromium.org/19199002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 14:12:20 +00:00
jkummerow@chromium.org
8be50bbd70
Fix --deopt-every-n-times flag
...
(was broken since r15640)
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/19188002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 13:36:36 +00:00
bmeurer@chromium.org
b43e8f1e66
Android lacks support for cxxabi.h.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19153004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 12:24:13 +00:00
mstarzinger@chromium.org
0599225187
Use internal array as API function cache.
...
R=yangguo@chromium.org
BUG=chromium:260106
TEST=cctest/test-api/Regress260106
Review URL: https://codereview.chromium.org/19159003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 11:41:41 +00:00
loislo@chromium.org
d13ad5be9b
Current logger code is messy. It mixes together
...
four or even five different logging destinations.
I think we can extract the code related to a destination
into a separate class, do the same for the all destinations
and have four classes with more or less simple common logging
API
BUG=none
Meta-bug= https://code.google.com/p/chromium/issues/detail?id=260203
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18259024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 11:35:39 +00:00
bmeurer@chromium.org
01080fa7dc
Fix possible stack overflow in range analysis.
...
Avoid the implicit recursion for range analysis, using a loop with
an explicit stack instead.
BUG=chromium:259452
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/19145002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 09:53:46 +00:00
bmeurer@chromium.org
fb77805ab7
Turn propagate deoptimizing mark into a proper HPhase.
...
Also turn the recursion on the domination chain into a loop with
an explicit stack, to avoid possible stack overflow here.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/19150002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 09:53:00 +00:00
dslomov@chromium.org
1c2d005b3c
Use corerct conversions for DataView accessors.
...
We now use DoubleTo(U)Int32 that follows ES specification.
R=titzer@chromium.org ,rossberg@chromium.org
Review URL: https://codereview.chromium.org/18703007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 09:32:15 +00:00
danno@chromium.org
d8b7c721cc
Prepare push to trunk. Now working on version 3.20.6.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19154003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 08:00:10 +00:00
dslomov@chromium.org
a6419e3e47
This does not match ES6 spec but is the behavior in both Firefox and WebKit/Blink.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19086003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 07:43:46 +00:00
bmeurer@chromium.org
1384094efc
Cleanup leftover definitions in HGraph.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19154002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 07:41:18 +00:00
danno@chromium.org
c65f4f7f7b
Don't use StoreIC_ArrayLength on frozen arrays
...
The code previously assumed that an array with fast properties must have
a writable length property. But Object.freeze() now exposes a way to make
length read-only without moving the object into slow mode. This patch
simply adds a !is_frozen check to the IC code. Any future optimizations
to attribute-setting on JSArrays will need to make similar accomodations.
R=danno
BUG=v8:2711,259548
Review URL: https://chromiumcodereview.appspot.com/19115002
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-14 22:03:46 +00:00
adamk@chromium.org
625a0e9759
Add map transition for observed objects
...
This patch enables objects to undergo a single transition when they become observed, avoiding the need to create a new map for every observed objects.
Observed objects which become unobserved does not cause another map transition and unobserved does not clear the observed bit on the map. The unobserved object.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18221006
Patch from Rafael Weinstein <rafaelw@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-13 00:20:40 +00:00
hpayer@chromium.org
f5ab1b2a4a
Collect side effects on paths to dominated block including the dominator.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18254008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 15:06:50 +00:00
olivf@chromium.org
da7f6a68aa
Fix number tag for no-sse2.
...
FCmp() pops 2 arguments from the stack...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18254007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 13:05:39 +00:00
danno@chromium.org
5086db3d30
Fix LGapResolver::EmitMove for X64 when the dst is a double register and src is a constant
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18301015
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 12:34:11 +00:00
danno@chromium.org
48b65f8cd5
Implement truncated d-to-i as a stub on x86
...
- Added a general DoubleToIStub so that it's possible to extend to other platforms and non-truncating case.
- This version handles all cases of truncation (previous code deopted in some cases) and all source/destination register combinations without clobbering any temps.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18612005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 12:28:32 +00:00
bmeurer@chromium.org
4780c99790
Add a common templatized implementation of OS::DumpBacktrace() and OS::StackWalk() to platform-posix.h and use it for Linux, Mac OS X and FreeBSD.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18431004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 12:02:26 +00:00
yangguo@chromium.org
bd04a838a7
Check for scheduled exceptions after a failed-access-check callback.
...
R=verwaest@chromium.org
BUG=v8:2524
Review URL: https://codereview.chromium.org/18298012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 11:42:07 +00:00
yangguo@chromium.org
e002207321
Fall back to generic on access checks in JSON.stringify.
...
BUG=259366
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18225006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 10:04:35 +00:00
titzer@chromium.org
2b9836af8c
Remove special-casing of EAGER and SOFT deoptimization calling conventions, allowing calling address to always be available to deoptimization entries.
...
BUG=
Review URL: https://codereview.chromium.org/18356008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-12 07:26:00 +00:00
olivf@chromium.org
bdf4fc96b0
Encapsulate compare nil ic_state.
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18602003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 17:20:57 +00:00
titzer@chromium.org
28aca51e8f
Refactor JavaScriptFrame::function() to return a JSFunction* and remove associated casts.
...
BUG=
Review URL: https://codereview.chromium.org/18404009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 16:45:58 +00:00
danno@chromium.org
d1d5f59d87
Fix build breakage after 15630
...
Use EXTRA_CALL_FRAME rather than NO_EXTRA_FRAME in
ElementsTransitionAndStoreIC_Miss.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/18812005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 16:25:58 +00:00
hpayer@chromium.org
90056df999
Use filler maps for folded allocations when verify heap is turned on.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18863011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 15:29:02 +00:00
bmeurer@chromium.org
6c13f097d6
Turn ElementsTransitionAndStore stub into a HydrogenCodeStub.
...
R=danno@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:29:00 +00:00
mvstanton@chromium.org
9b856d724d
Bogus assert needs to be removed on non-ia32 platforms
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18384007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:26:01 +00:00
verwaest@chromium.org
a7d38e483b
Support grow-stub by >1 if the target is holey.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18484006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:21:14 +00:00
titzer@chromium.org
9e7819fac4
Added %NeverOptimize runtime call that can disable optimizations for a method for tests.
...
BUG=
Review URL: https://codereview.chromium.org/18214005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:17:56 +00:00
hpayer@chromium.org
90a8ac78bd
Remove filler map when folding allocations and turn on allocation folding.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18384004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:53:54 +00:00
bmeurer@chromium.org
c0603d2974
Enable compiled transitions by default.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19005005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:53:06 +00:00
mvstanton@chromium.org
10615aef7b
AllocationSites: when updating allocation site transition information,
...
be careful to merge feedback appropriately. For example, one array may
have gone holey, and then another allocated at the same place instead
went DOUBLE but remained packed. In this case the ElementsKind
ultimately stored in the AllocationSite should be HOLEY_DOUBLE.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18531007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:08:36 +00:00
olivf@chromium.org
a5a144c7c0
Implement X87 stack tracking and x87 multiplication
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18041003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 13:07:04 +00:00
bmeurer@chromium.org
b2f909cf3e
Turn array index dehoisting into a proper HPhase.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18562009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 12:03:43 +00:00
verwaest@chromium.org
a5397dce98
Keep IC monomorphic on transition, even if previously not STANDARD_STORE.
...
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18034023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:54:43 +00:00
rossberg@chromium.org
b17713e405
Introduce type Bounds record
...
Refactoring in anticipation of handling variable bounds.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18415005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:47:05 +00:00
hpayer@chromium.org
99d541a486
Allocation folding integrated into the GVN phase.
...
BUG=
R=mstarzinger@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/18596005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:41:33 +00:00
bmeurer@chromium.org
e3676e9135
Cleanup common POSIX functionality.
...
The Mutex implementation is the same for all 6 POSIX platformats, just
like of them use the sched_yield() to implement Thread::YieldCPU().
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18335008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:37:08 +00:00
hpayer@chromium.org
fba07ddd23
Perform new space evacuation based on marking bits.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18531004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:24:38 +00:00
rossberg@chromium.org
3d9586c431
This adds the following array iterator methods:
...
Array.prototype.values
Array.prototype.keys
Array.prototype.entries
These all return an Array Iterator object which has a next
method.
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-15.4.5
BUG=v8:2722
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/16848004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:20:54 +00:00
jochen@chromium.org
2809793a4f
Only depend on icudata on windows.
...
On windows, this triggers the dll to be copied to the correct
locations. On other platforms, icudata is compiled in, and depending on
it results in an invalid linker archive ordering.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18734003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 11:01:00 +00:00
jochen@chromium.org
97409c2363
Move InitializeICU() to the V8 API and use it.
...
I can't get rid of the enable_i18n flag yet, as we need to be able to
turn off all extensions for creating the snapshot.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18860007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:58:54 +00:00
mvstanton@chromium.org
b61dfd4a82
A bug in AllocationSite::GetMode(from, to) meant that we didn't update
...
boilerplates for SMI to SMI_HOLEY transitions.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18917003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:39:22 +00:00
hpayer@chromium.org
c518bee54e
Implemented lazy sweeping of new space.
...
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18998004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 09:17:03 +00:00
bmeurer@chromium.org
c294a40e0a
Turn canonicalization into a proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18758003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 08:21:50 +00:00
verwaest@chromium.org
e6721cdcb4
Fix StoreIsUninitialized, and add Soft Deopt if keyed store is uninitialized.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18526005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 07:52:57 +00:00
adamk@chromium.org
25ca62b6ad
HasRealIndexedProperty doesn't work on JSGlobalProxy
...
HasRealIndexedProperty didn't unwrap the JSGlobalProxy and therefore always
returned false.
BUG=257748
R=adamk@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/18402007
Patch from Adam Barth <abarth@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 19:03:58 +00:00
bmeurer@chromium.org
695b18c050
Turn merge removable simulates into a proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18258004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:34:28 +00:00
dslomov@chromium.org
5eb63e483d
Change DataView accessors behavior for insufficient args.
...
ES6 spec for DataView is not fully finished, but Blink, WebKit and
Firefox agree in that for DataView use of getters/setters with no
arguments should result in exceptions, while undefined offset argument
is the same as zero.
R=bmeurer@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/18313007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:18:59 +00:00
verwaest@chromium.org
6efe8ca229
Flag rewriting an IC while writing to a global constant property as a failure caused by the constant property turning mutable.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19006002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:06:30 +00:00
olivf@chromium.org
e84649d85e
Fix unary op type feedback.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18526003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:03:00 +00:00
verwaest@chromium.org
d1155a1f09
Revert "Allow NORMAL ICs to go polymorphic."
...
BUG=
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18881006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:00:48 +00:00
olivf@chromium.org
01b4c2831e
Use static_cast instead of reinterpret_cast
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18899003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:00:08 +00:00
rodolph.perfetta@gmail.com
762157d697
ARM: Implement memcpy using NEON.
...
Add support for a few NEON and ARM SIMD instructions and use them for various
memcpy operations.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/17858002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:32:39 +00:00
palfia@homejinni.com
c04a72e76b
MIPS: Replace custom builtin invocation instructions by a generic version.
...
Port r15582 (585c121)
BUG=
Review URL: https://codereview.chromium.org/18881005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:26:38 +00:00
verwaest@chromium.org
51aa0c13da
Allow NORMAL ICs to go polymorphic.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19005002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 15:24:15 +00:00
danno@chromium.org
5bace7178d
Prepare push to trunk. Now working on version 3.20.5.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18978006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 14:49:05 +00:00
bmeurer@chromium.org
5664bcaed3
Refactor compute minus zero checks into a proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18666006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 14:08:19 +00:00
bmeurer@chromium.org
854e9b99fb
Insert HTrapAllocationMemento only when required for TransitionElementsKindStub.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18292018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 13:24:51 +00:00
verwaest@chromium.org
cc877e4836
Turn polymorphic calls using the same prototype monomorphic.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18918002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 13:05:41 +00:00
loislo@chromium.org
487a61934f
Improve test-cpu-profiler.cc tests stability
...
The tests sometimes fail on bots as they don't have time to collect enough samples. This change makes them use counter of samples taken when v8 is either in JS or EXTERNAL state and repeat sampling until desired threshold is reached.
BUG=v8:2628
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18418004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:56:58 +00:00
mvstanton@chromium.org
448b268962
Revert "Calls to HCheckFunction can be eliminated if the value is an HConstant"
...
This reverts commit 3f96122cc572f7a0b638c30f65328c3cb3666795.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18998003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:19:37 +00:00
bmeurer@chromium.org
bdff9c70b8
Use BuildGrowElementsCapacity for the TransitionElementsKind stub.
...
R=danno@chromium.org , dslomov@chromium.org
Review URL: https://codereview.chromium.org/18876004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:19:02 +00:00
verwaest@chromium.org
22d7a85519
Unify Count Operation assignment with other assignments
...
This relands 15578, disables 1 test in harmony observe re bug v8:2774
R=dslomov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18452013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:02:18 +00:00
olivf@chromium.org
9a61947869
Fix missing spaces
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18991004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:01:29 +00:00
olivf@chromium.org
c5f20ef8dc
Type::GetName(...) for inspecting Types in the debugger
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18587007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 11:20:00 +00:00
jochen@chromium.org
865ce5806f
Factor out toolset definitions in a separate gypi file
...
That way, third-party libraries use the correct toolset settings.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18846002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 11:15:16 +00:00
palfia@homejinni.com
7c8883f3ce
MIPS: Adjust default Heap sizes.
...
This change decreases the default Heap sizes on MIPS (sets the
same sizes as on Android).
Most MIPS hw has smaller RAM size than 700MB, which can lead
to test failures, if a test does not set the Heap sizes explicitly
(like cctest/test-mark-compact/MarkCompactCollector).
BUG=
Review URL: https://codereview.chromium.org/18447003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 10:01:30 +00:00
olivf@chromium.org
857178ad23
Replace custom builtin invocation instructions by a generic version
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18154004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 09:02:23 +00:00
dslomov@chromium.org
6071894047
Revert "Unify the Count Operation assignment with other assignments."
...
This reverts commit r15578.
This change made mjsunit/harmony/object-observe.js flaky.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/18537006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 07:53:16 +00:00
dslomov@chromium.org
cfa91762ac
Allow parameterless typed array constructors.
...
ES6 spec tacitly allows them, and they are allowed in Firefox and in
WebKit/Blink.
R=bmeurer@chromium.org ,rossberg@chromium.org
Review URL: https://codereview.chromium.org/18769005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 19:34:21 +00:00
verwaest@chromium.org
5eeed4636d
Unify the Count Operation assignment with other assignments.
...
This does not enable inlining of setters (yet).
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17432004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 17:08:47 +00:00
palfia@homejinni.com
b7a2c88f0f
MIPS: Do not omit the write-barrier if the input value is a smi.
...
Port r15573 (3954d53)
Original commit message:
ARM: Do not omit the write-barrier if the input value is a smi.
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.
BUG=chromium:254570
Review URL: https://codereview.chromium.org/18118010
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 15:58:31 +00:00
palfia@homejinni.com
17e228d3dd
MIPS: Implement Polymorphic Store ICs.
...
Port r15566 (a76585e)
Original commit message:
- Makes a common superclass for Load and Store stub compiler.
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.
BUG=
Review URL: https://codereview.chromium.org/18595006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 15:54:43 +00:00
mvstanton@chromium.org
3f1fc1d3ab
Bugfix: AllocationSite objects need to be walkable by the heap snapshot
...
generator.
BUG=
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/18584007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 14:16:59 +00:00
yangguo@chromium.org
b99ca1ab12
Do not implicitly convert receivers for builtin functions when inspecting frames.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18900004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 13:58:11 +00:00
verwaest@chromium.org
a1dfbc4627
ARM: Do not omit the write-barrier if the input value is a smi.
...
The input value isn't what is written into the field if the representation is double. A heap-number is written to the field instead; which requires a write-barrier.
BUG=chromium:254570
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18854018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 12:31:59 +00:00
jochen@chromium.org
518ca395cc
Initialize ICU data files in d8 and disable i18n for other code samples
...
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18899002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 12:26:07 +00:00
rossberg@chromium.org
189c0782d3
Unrevert^2 "Derive synthetic type bounds for expressions""
...
Reenables https://codereview.chromium.org/17842004 (again).
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18895002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 11:48:47 +00:00
verwaest@chromium.org
125b7d0848
Add support to turn polymorphic loads from the same prototype into a monomorphic load.
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18887002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 09:59:23 +00:00
hpayer@chromium.org
42c82d5e4f
Do not iterate the new space on marking deque overflow.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18238008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:40:34 +00:00
verwaest@chromium.org
a9fd01d567
- Makes a common superclass for Load and Store stub compiler.
...
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14142005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:22:41 +00:00
jochen@chromium.org
c2b039970e
Don't use the identifiers TRUE and FALSE
...
icu uses the same identifiers, so we can't just #undef them
BUG=v8:2745
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18209003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 07:19:51 +00:00
palfia@homejinni.com
6edaa525eb
MIPS: Fix debug mode failures introduced by r15561.
...
The commit r15561 introduced a lot of debug mode test failures
on MIPS. This change solves these failures by making
the FP-saved version of StoreBufferOverflowStub available
at snapshot time. This stub was added to ARM by commit r14359.
BUG=
Review URL: https://codereview.chromium.org/18238012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 00:00:15 +00:00
palfia@homejinni.com
0565ca5604
MIPS: Rename AllocationSite::payload to AllocationSite::transition_info
...
Port r15556 (3cd37fff)
BUG=
Review URL: https://codereview.chromium.org/18615008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 18:00:24 +00:00
palfia@homejinni.com
82d8580215
MIPS: Bugfix: The general array constructor stub did not handle the case properly when it is called with a function pointer in the type cell, instead assuming that an AllocationSite object should be present.
...
Port r15555 (262c081)
Original commit message:
The case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.
A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.
BUG=
Review URL: https://codereview.chromium.org/18858003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 17:58:03 +00:00
palfia@homejinni.com
28d1314362
MIPS: Create AllocationSite objects, pointed to by AllocationSiteInfo.
...
Port r15545 (8cf04c4)
Original commit message:
This creates a platform where we can do additional things with allocation sites,
other than just aid in reducing array transitions.
BUG=
Review URL: https://codereview.chromium.org/18089025
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 17:01:12 +00:00
rossberg@chromium.org
b04abd892f
Fix stupidity
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18801004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:41:06 +00:00
rossberg@chromium.org
65170b3b9e
Revert^2 "Derive synthetic type bounds for expressions""
...
Reverts https://codereview.chromium.org/17842004 (again), due to SS regression.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18337003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:38:39 +00:00
verwaest@chromium.org
b5f63ae659
Revert "Introduce a handle zapping setting, and enable it by default for release and debug" due to performance impact.
...
R=jochen@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18325027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:28:25 +00:00
jochen@chromium.org
ae2709f800
Fix an implicit cast from int64 to double in the i18n extension
...
On MSVS, this throws an error
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18854002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:22:12 +00:00
mvstanton@chromium.org
23695eb86e
Rename AllocationSite::payload to AllocationSite::transition_info
...
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18749004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:00:12 +00:00
mvstanton@chromium.org
c1e19bfc35
Bugfix: The general array constructor stub did not handle the case
...
properly when it is called with a function pointer in the type cell,
instead assuming that an AllocationSite object should be present. The
case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.
A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.
BUG=
R=hpayer@chromium.org , hpayer@google.com
Review URL: https://codereview.chromium.org/18277006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:54 +00:00
ulan@chromium.org
2c33325114
Fix estimation of released pages when collecting evacuation candidates.
...
Do at least two GCs in LowMemoryNotification.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18635006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:33 +00:00
rossberg@chromium.org
1d51b7a760
Unrevert "Derive synthetic type bounds for expressions"
...
Reenables https://codereview.chromium.org/17842004
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18847002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 13:19:58 +00:00
rossberg@chromium.org
2461d2a540
Add Type::cast
...
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 13:07:41 +00:00
ulan@chromium.org
7ab931ee62
Fix early exit condition for LowMemoryNotification.
...
When computing next_gc_likely_to_collect_more do not take into account already
free nodes in PostGarbageCollectionProcessing.
This reduces the number of full GC in LowMemoryNotification from 7 to ~2.
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18834002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:51:34 +00:00
jochen@chromium.org
ab5addd86d
Introduce a handle zapping setting, and enable it by default for release and debug
...
The checks are split out from "extra checks" which are too expensive to
turn on by default.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18316006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:29:55 +00:00
jkummerow@chromium.org
f0811f4e6f
Fix and cleanup can_be_minus_zero computation
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18434004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 11:15:24 +00:00
mvstanton@chromium.org
67d9051bcd
Create AllocationSite objects, pointed to by AllocationSiteInfo.
...
This creates a platform where we can do additional things with allocation sites,
other than just aid in reducing array transitions.
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/15094018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 10:02:16 +00:00
yangguo@chromium.org
c1c10b452f
Remove bogus assertion in parallel recompilation.
...
Functions that are optimized by the parallel thread and ready for installing
are not necessarily marked as in-recompilation-queue. For example, OSR could
have replaced the code by optimized code.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18769003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:29:49 +00:00
bmeurer@chromium.org
47df386841
Turn the representation changes into a proper HPhase.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18832002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:02:09 +00:00
mvstanton@chromium.org
eea586f2a1
Calls to HCheckFunction can be eliminated if the value is an HConstant
...
function, and that function handle matches the target handle.
BUG=
R=danno@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18751003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 09:00:59 +00:00
bmeurer@chromium.org
99f171a128
Turn redundant bounds checks elimination into a proper HPhase.
...
R=dslomov@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18826002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:36:28 +00:00
mstarzinger@chromium.org
a634b527fb
Prepare push to trunk. Now working on version 3.20.4.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18396003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:35:11 +00:00
bmeurer@chromium.org
b899185790
Turn infer types into proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18568007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:33:03 +00:00
bmeurer@chromium.org
e5b69658e4
Turn redundant phi elimination into proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18549004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:18:29 +00:00
hpayer@chromium.org
6c4594b7cd
Refactor MacroAssembler::Allocate a little bit for X64
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18660002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 08:10:12 +00:00
bmeurer@chromium.org
5fd94c9ba1
Turn stack check elimination into proper HPhase.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18816002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 07:03:57 +00:00
loislo@chromium.org
5571dc4273
CPUProfiler: Improve line numbers support in profiler.
...
1) report line number even if a script has no resource_name (evals);
a) do that for already compiled functions in log.cc;
b) do that for fresh evals in compiler.cc;
2) Implement the test for LineNumbers and make it fast and stable, otherwise we have to wait for tick samples;
a) move processor_->Join() call into new Processor::StopSynchronously method;
b) Process all the CodeEvents even if we are stopping Processor thread;
c) make getters for generator and processor;
3) Fix the test for Jit that didn't expect line numbers;
4) Minor refactoring:
a) in ProcessTicks;
b) rename enqueue_order_ to last_code_event_id_ for better readability;
c) rename dequeue_order_ to last_processed_code_event_id_ and make it a member for better readability;
BUG=
TEST=test-profile-generator/LineNumber
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18058008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-07 11:42:30 +00:00
bmeurer@chromium.org
17e58e8198
Turn dead code elimination into a proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18791002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-07 06:00:15 +00:00
yurys@chromium.org
696090196d
Delete deprecated CPU profiler code that supports filtering by security token
...
The methods that allow to filter CPU profile by security token were introduced to support console.profiles in WebKit. Now that console.profiles is removed and corresponding V8 API methods have been deprecated in 3.19 branch(https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h ) it is safe to remove all that code.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18709003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-06 09:12:09 +00:00
palfia@homejinni.com
a925b6b8de
MIPS: Refactoring and cleanup of control instructions.
...
Port r15513 (6f50861)
BUG=
Review URL: https://codereview.chromium.org/18359004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 16:13:32 +00:00
palfia@homejinni.com
79ce581420
MIPS: Generate StoreGlobal stubs with Hydrogen.
...
Port r15512 (bdf9918)
Original commit message:
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
BUG=
Review URL: https://codereview.chromium.org/18277005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 14:51:57 +00:00
palfia@homejinni.com
075863538b
MIPS: Convert UnaryOpStub to a HydrogenCodeStub.
...
Port r15506 (d0ea1f6)
BUG=
Review URL: https://codereview.chromium.org/18763003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 14:48:50 +00:00
yangguo@chromium.org
fa001d1b6a
Refactored code a bit to improve StringReplace performance
...
1. Use inline macro to mitigate the side effect emulation overhead
2. Refactor Zone::DeleteAll() to merge two loops together
R=bmeurer@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18057004
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 12:57:38 +00:00
yangguo@chromium.org
a3b6452d02
Unload debugger on isolate deinit.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18682003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 12:52:20 +00:00
danno@chromium.org
bd50e6d38f
Refactoring and cleanup of control instructions
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18331004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:40:14 +00:00
danno@chromium.org
345cc98a25
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=rossberg@chromium.org , ulan@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=15419
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:34:02 +00:00
dslomov@chromium.org
7e0ee5301e
Add internal fields to JSArrayBufferViews (JSTypedArray and JSDataView)
...
In Blink, JSTypedArray and JSDataView objects act as "wrappers" for C++
objects. Wrapping protocol in Blink requires all wrapper JavaScript objects
to have a certain amount of internal fields that Blink uses for
book-keeping (essentially a pointer to C++ object and some type
information). This change adds those internal fields to JSTypedArray and
JSDataView, in a similiar way to how it is done for JSArrayBuffer.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/18695004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:12:36 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
mstarzinger@chromium.org
709600afc3
Switch to RETURN_IF_EMPTY_HANDLE for empty handle checks.
...
This makes sure that every place where we assume an empty handle is
indicating a pending exception gets asserted accordingly.
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/18427003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:49:53 +00:00
mstarzinger@chromium.org
328191d093
Handlify GlobalObject::EnsurePropertyCell method.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18348013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:38:29 +00:00
danno@chromium.org
d00a14392d
Add trampoline to enable pointer -> handle code calls
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18550002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:36:11 +00:00
olivf@chromium.org
240c7aced9
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18712002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:26:22 +00:00
rossberg@chromium.org
437f8b0c24
Unrevert "Remove BinaryOp::result_type""
...
Reenables https://code.google.com/p/v8/source/detail?r=15265
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18309005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:49:37 +00:00
rossberg@chromium.org
929e193fc2
Tweak error message
...
R=yangguo@chromium.org
BUG=v8:2758
Review URL: https://codereview.chromium.org/18759002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:31 +00:00
jkummerow@chromium.org
7456e290f3
Fix stack alignment corruption for MinGW32 build
...
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18300003
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:34:17 +00:00
hpayer@chromium.org
8983f669e4
Set GVN ChangesNewSpacePromotion for OSR Entry.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18752002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:17:30 +00:00
jkummerow@chromium.org
c255fba681
Merge two lines into one for V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch}
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18575003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 08:15:32 +00:00
machenbach@chromium.org
deefeb15d9
Prepare push to trunk. Now working on version 3.20.3.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18750002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 07:05:12 +00:00
bmeurer@chromium.org
8767fdbb28
Turn range analysis into proper HPhase.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18491002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 19:25:16 +00:00
yurys@chromium.org
44981e4f5e
Remove deprecated heap profiler methods from V8 public API
...
v8::HeapProfiler::FindHeapSnapshot was already deprecated when 3.19 branch was created (https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h ).
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18701002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:34:07 +00:00
alph@chromium.org
cc97192cb1
Change the type of system root nodes in heap snapshot to kSynthetic
...
R=mstarzinger@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18420019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:18 +00:00
yurys@chromium.org
53cf35405a
Remove #include "heap-snapshot-generator-inl.h" from v8.h
...
This reduces number of dependent .cc files to 9 (was whole v8).
BUG=None
R=loislo@chromium.org
Review URL: https://codereview.chromium.org/18699002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:12 +00:00
palfia@homejinni.com
d64472814a
MIPS: Fix bug in StringConstructCode builtin.
...
BUG=
TEST=webkit/dfg-to-string-bad-toString, webkit/dfg-to-string-bad-valueOf,
webkit/dfg-to-string-int-or-string, webkit/dfg-to-string-side-effect,
webkit/dfg-to-string-bad-toString, webkit/dfg-to-string-bad-valueOf,
webkit/dfg-to-string-toString-in-string, webkit/dfg-to-string-int,
webkit/dfg-to-string-valueOf-in-string
Review URL: https://codereview.chromium.org/18668004
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 15:19:03 +00:00
titzer@chromium.org
bddf08b0b1
Factor out OSR-related graph-building functionality from hydrogen.cc.
...
BUG=
Review URL: https://codereview.chromium.org/18496002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 09:20:07 +00:00
olivf@chromium.org
950a372834
Revert "Convert UnaryOpStub to a HydrogenCodeStub"
...
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin.
BUG=
R=danno@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/18650003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 19:57:25 +00:00
yurys@chromium.org
282926a760
Fix Mac compilation after r15484
...
BUG=None
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18023019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 17:26:01 +00:00
yurys@chromium.org
9ef762b683
Do not store fp and sp values in TickSample
...
Their values are not used neither by the tick processor nor by CpuProfiler so it is just a waste of space.
TickSample used to be a transport for grabbed register values to TickSample::Trace, now they are passed in a special structure RegisterState which is allocated on the stack for the sampling period.
Some common pieces were moved from platform-dependent code into Sampler::SampleStack and TickSample::Init.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18620002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 16:20:59 +00:00
jkummerow@chromium.org
91be57a469
Revert "Fix stack alignment corruption for MinGW32 build"
...
due to compile failures.
This reverts r15480.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/18649002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:45:57 +00:00
yurys@chromium.org
678c9dc940
Remove #include "cpu-profiler-inl.h" from v8.h
...
This significantly reduces amount of files to be recompiled after changes in cpu-profiler.h and its dependencies.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18522004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:39:18 +00:00
jkummerow@chromium.org
77c582d253
Format stack layout comments for X64
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18607002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:36:49 +00:00
jkummerow@chromium.org
45681dbd76
Fix stack alignment corruption for MinGW32 build
...
Contributed by Peter Varga <pvarga@inf.u-szeged.hu>
BUG=
TEST=cctest/test-assembler-ia32/StackAlignmentForSSE2,cctest/test-assembler-x64/StackAlignmentForSSE2,cctest/test-platform/StackAlignment
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18300003
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:34:50 +00:00
jkummerow@chromium.org
84833a59ba
Mark i18n functions as native and set proper names
...
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18075004
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:30:27 +00:00
mstarzinger@chromium.org
5a71b17379
GDBJIT: Remove codes when they are garbage collected.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/13880031
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:29:59 +00:00
jkummerow@chromium.org
b89693572a
Fix typo in api.cc
...
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18471005
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:27:47 +00:00
mstarzinger@chromium.org
0a6b0645cf
Fix GDBJIT compilation on Mac after r15467.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/18259007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:58:27 +00:00
olivf@chromium.org
0d2fed8f26
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17229005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:53 +00:00
mstarzinger@chromium.org
45264ffbf6
Fix compilation on x64 after r15466
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18643002
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:21:21 +00:00
yurys@chromium.org
559e1d4540
Correctly report stack trace when current function is FunctionApply builtin
...
When pc is inside FunctionApply builtin function the top frame may be either
2) Internal stack frame created by FunctionApply itself.
In this case we know its caller's pc and can correctly resolve calling function.
1) Frame of the calling JavaScript function that invoked .apply(). In this case we have no practical reliable way to find out the caller's pc so we mark the caller's frame as 'unresolved'.
All this logic is implemented in ProfileGenerator. SafeStackFrameIterator is extended to provide type of the current top stack frame (iteration actually starts from the caller's frame as we know top function from pc).
BUG=252097
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18269003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:04:37 +00:00
mstarzinger@chromium.org
13b60ec639
Fix GDBJIT for Linux after r15460.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18363007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:57:38 +00:00
bmeurer@chromium.org
e3f34a58b2
Reintroduce runtime zone to Isolate.
...
In case tcmalloc is not being used, the malloc()/free() overhead
can be significant for several runtime functions like StringReplace.
Therefore we reintroduce the runtime_zone into Isolate and reenable
the segment caching functionality of Zone.
There's now also a simpler version of ZoneScope w/o nesting capabilities.
BUG=v8:2759
R=danno@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18635003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:40:30 +00:00
jkummerow@chromium.org
56ab3e3404
Import the v8-i18n extension into v8
...
This adds the gyp flag v8_enable_i18n_support (off by default), and the
v8 flag FLAG_enable_i18n (on by default, but without effect if
v8_enable_i18n_support is off).
BUG=v8:2745
R=cira@chromium.org , danno@chromium.org , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18487004
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 11:22:29 +00:00
yangguo@chromium.org
f23ed09eef
Fix small mistake in d8.js.
...
R=mvstanton@chromium.org
BUG=v8:2756
Review URL: https://codereview.chromium.org/18572009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 10:38:20 +00:00
yangguo@chromium.org
ae126e1231
Log deopts with --log-timer-events.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17599007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 10:10:27 +00:00
mstarzinger@chromium.org
9bd3128736
Don't return frame by reference in ProcessTopOptimizedFrame.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/18592006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 09:47:22 +00:00
danno@chromium.org
57f46c0190
Make MachO gdbjit support compile again
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18621002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 08:29:46 +00:00
jkummerow@chromium.org
de80207a4b
Fix default type feedback returned from the oracle
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18465003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 16:31:39 +00:00
mstarzinger@chromium.org
e67fb1e1fe
Handlify JSObject::DefineAccessor method.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18497003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 16:24:23 +00:00
yurys@chromium.org
b0943ce158
Use stored Isolate pointer instead of Isolate::Current()
...
Fixed a couple of places where stored pointer to the isolate can be used instead of reading from thread local storage.
BUG=None
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18418003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:44:30 +00:00
mstarzinger@chromium.org
6bde251534
Handlify JSObject::SetPrototype method.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18089024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:32:46 +00:00
titzer@chromium.org
63abcc515b
Remove HFixedArrayBaseLength instruction and replace with regular HLoadNamedField.
...
BUG=
Review URL: https://codereview.chromium.org/18508002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:31:17 +00:00
yangguo@chromium.org
15c28b8006
Fix debuggersupport=off build.
...
R=ulan@chromium.org
BUG=v8:2754
Review URL: https://codereview.chromium.org/18500003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:30:33 +00:00
ulan@chromium.org
74d147a25d
Enable weak embedded maps in optimized code.
...
If the top optimized code in call stack is at the point that does not support
deoptimization, then treat the maps in the code as strong pointers.
Note that other optimized code in call stack must support deoptimization
because of the call instruction with side-effects.
BUG=217858,v8:2073
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16955008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:15:58 +00:00
jkummerow@chromium.org
a2d4cf9de7
Not consider the use representation in unintiliazed ArrayLiteral which always requires SMI
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18263002
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 15:00:13 +00:00
jkummerow@chromium.org
83fb6823db
Prepare push to trunk. Now working on version 3.20.2.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18324010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 14:41:58 +00:00
bmeurer@chromium.org
ed12ed4793
Fix invalid condition introduced with revision 15441.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18375004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 12:16:30 +00:00
rossberg@chromium.org
731a2aba34
Revert "Remove BinaryOp::result_type"
...
This reverts https://code.google.com/p/v8/source/detail?r=15265 , due to performance regression.
TBR=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18525002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 11:57:43 +00:00
rossberg@chromium.org
aa2ebf6da7
Revert "Derive synthetic type bounds for expressions"
...
TBR=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18524002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 11:50:56 +00:00
bmeurer@chromium.org
f60609bd1b
Turn UInt32 analysis into a proper HPhase.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18487003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 10:53:08 +00:00
yangguo@chromium.org
92523a4553
Join threads after stopping.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18287003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 09:04:45 +00:00
bmeurer@chromium.org
aadcf381db
Turn escape analysis into a proper HPhase.
...
R=danno@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18476004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 08:29:33 +00:00
bmeurer@chromium.org
7a820bec9d
Properly cleanup the transcendental subcaches.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18487002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 08:27:27 +00:00
yurys@chromium.org
4c5508b42f
Correctly report callstack when current function is FunctionCall builtin
...
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.
This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.
BUG=None
TBR=loislo@chromium.org
Review URL: https://codereview.chromium.org/18422003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 07:51:09 +00:00
bmeurer@chromium.org
75bb6b9ed8
Cleanup the default Isolate's entry stack.
...
This adds an ASSERT that the entry_stack_ of the Isolate is
empty upon destruction. The default Isolate is an exception
here, as it may still contain an entry stack item upon
destruction.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18247004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 07:21:07 +00:00
yurys@chromium.org
c4b6e08ac3
Revert "Correctly report callstack when current function is FunctionCall builtin"
...
This reverts commit r15426. The new test fails in Debug mode.
BUG=None
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18478002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:26:07 +00:00
loislo@chromium.org
a0140093ba
CPUProfiler: propagate scriptId to the front-end
...
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.
BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15429
Review URL: https://codereview.chromium.org/17642009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-02 06:14:01 +00:00
palfia@homejinni.com
64a56607fb
MIPS: Fix register usage in ProfileEntryHookStub
...
Different register must be used to pass the test on target hardware.
BUG=
TEST=cctest/test-api/SetFunctionEntryHook
Review URL: https://codereview.chromium.org/18368002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 21:05:03 +00:00
loislo@chromium.org
f470bbbb4f
Revert "CPUProfiler: propagate scriptId to the front-end"
...
This reverts commit d575f6bc8b262dac08f02913ae6e7c504c9dd900.
Check is failing on debug bots.
TBR= yurys@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18332010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 19:22:45 +00:00
loislo@chromium.org
bc9f6c607f
CPUProfiler: propagate scriptId to the front-end
...
Each CpuProfileNode has resource_name string property.
It cost us N * strlen(resource_name) where N is number of functions in the collected profile.
We could transfer script_id instead of resource_name so it would reduce transfer
size and help us to solve the problem with evals and sourceURL.
BUG=none
TEST=test-cpu-profiler/CollectCpuProfile
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17642009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:15:57 +00:00
yangguo@chromium.org
4afe85e42f
Also delete optimization jobs in the output queue when stopping thread.
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18364002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:59 +00:00
danno@chromium.org
77c20c30a3
Revert r15419: "Generate StoreGlobal stubs with Hydrogen"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:21 +00:00
yurys@chromium.org
91dc6dd632
Correctly report callstack when current function is FunctionCall builtin
...
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was.
This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18316004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 14:57:58 +00:00
rossberg@chromium.org
fd484c9df9
Derive synthetic type bounds for expressions
...
Currently synthesizes Smi as the lower bound for numeric operations (except for +, which might result in a string). That would need to change in places where we want to track constants as type feedback.
Does not do anything about variables yet.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17842004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:59:18 +00:00
mstarzinger@chromium.org
493d1f1c21
Implement WeakMap.prototype.clear function.
...
R=rossberg@chromium.org
BUG=v8:2753
TEST=mjsunit/harmony/collections
Review URL: https://codereview.chromium.org/18352002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:56:48 +00:00
prybin@chromium.org
488da00542
Debug: support breakpoints set in the middle of statement (try #2 after rollback)
...
Review URL: https://codereview.chromium.org/18349004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:44:10 +00:00
danno@chromium.org
a3bce19868
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:22:13 +00:00
prybin@chromium.org
fe22b45965
Revert "Debug: support breakpoints set in the middle of statement"
...
Review URL: https://codereview.chromium.org/18326007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:05:21 +00:00
mstarzinger@chromium.org
de07db147f
Ensure CheckInitialized is present independent of define.
...
This makes sure that the same symbols are present, independent of which
defines have been used while building V8. Otherwise only embedders with
compatible defines would be able to link against that binary.
R=danno@chromium.org
BUG=chromium:255779
Review URL: https://codereview.chromium.org/18305004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:57:15 +00:00
prybin@chromium.org
f997bacb16
Debug: support breakpoints set in the middle of statement
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/16093040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:54:13 +00:00
yurys@chromium.org
0ac0edb707
Test that profiler is stopped when isolate is being disposed
...
The only way to get v8::CpuProfiler instance in the V8 public API is to call v8::Iolate::GetCpuProfiler(). The method will return NULL if the isolate has not been initialized yet or has been torn down already. It is the client's reponsibility to make sure that CPU profiling has been stopped before disposing of the isolate.
This CL adds a test for this and several ASSRTS enforcing that assumptions. This allowed to be sure that heap is always setup when CPU profiling is being started. Based on that the number of places where already compiled functions are reported to the profiler event processor boils down to the single place (CpuProfiler::StartProcessorIfNotStarted). I'm going to rely on this assumption in further changes.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18336002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:32:52 +00:00
bmeurer@chromium.org
c146178079
Plug leaked mutexes in OptimizingCompilerThread.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18345004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:30:26 +00:00
bmeurer@chromium.org
d7618796f6
No need to pass profiles to ProfilerEventsProcessor.
...
Following up on https://codereview.chromium.org/18353002 , there's
no need to pass the profiles to ProfilerEventsProcessor's constructor.
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18332004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:24:26 +00:00
bmeurer@chromium.org
73d32d2fb7
Fix compiler error about unused profiles_ field in ProfilerEventsProcessor.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:11:29 +00:00
bmeurer@chromium.org
769f4a7033
Plug leaked string stream debug object cache in Isolate.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18324007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 12:07:53 +00:00
yangguo@chromium.org
cc2f01d31f
Restore message when rethrowing in TryCatch.
...
Based on a patch contributed by Andrew Paprocki <andrew@ishiboo.com>.
R=jkummerow@chromium.org
BUG=
TEST=cctest/test-api/TryCatchNestedSyntax
Review URL: https://codereview.chromium.org/17694002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:54:39 +00:00
loislo@chromium.org
ca90f4b058
CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
...
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.
This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.
BUG=255392
TEST=existing tests
R=yangguo@chromium.org , yurys@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=15405
Review URL: https://codereview.chromium.org/18053004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 10:12:03 +00:00
loislo@chromium.org
baa3a7e47b
Revert "CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls."
...
This reverts commit 76adf84b83ec3c0b261cbc29369ce4ac83f9d002.
windows compilation failed
BUG=none
TBR=yurys@chromium.org
Review URL: https://codereview.chromium.org/18344002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:51:44 +00:00
loislo@chromium.org
eb14637367
CpuProfiler: eliminate 2 layers of 4 for CodeCreateEvent calls.
...
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler.
Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which
simply passes arguments to the CodeEntry constructor.
And CpuProfiler just calls this method when it needs a CodeEntry object.
This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects.
BUG=255392
TEST=existing tests
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18053004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:39:15 +00:00
yangguo@chromium.org
daf4101aa4
Fix infinite loop in regress-opt-after-deopt.
...
%CompleteOptimization attempts to install optimized functions
that the parallel thread has put on the output queue, as long as
the function is marked with a builtin. However, activating the
debugger will set all functions to the lazy recompile builtin,
without the function being on the parallel recompilation pipeline.
So we wait for the function to finish parallel recompilation
while it's marked by a builtin that's unrelated to parallel
recompilation.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/18129003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 09:14:15 +00:00
palfia@homejinni.com
b2f6ef4f98
MIPS: Fix wrong checkin.
...
This commit fixes r15396.
BUG=
Review URL: https://codereview.chromium.org/18054020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 19:52:44 +00:00
palfia@homejinni.com
ecfdd87c8b
MIPS: Improved function entry hook coverage.
...
Port r15384 (d553efd)
Original commit message:
Adds more coverage for function entry hook, sufficient to capture profiles
that are contiguous from C++, through JS and back out to C++.
BUG=
Review URL: https://codereview.chromium.org/18184011
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 18:34:08 +00:00
palfia@homejinni.com
081a9d1791
MIPS: Hydrogen array constructor cleanup and improvements.
...
Port r15383 (3e90aaf)
Original commit message:
* Cleanup of LCallNewArray::PrintDataTo() method
* Created HCallNewArray::PrintDataTo()
* Created many more tests in array-constructor-feedback.js
* Removed redundant instructions in
GenerateRecordCallTarget
* Bugfix in CreateArrayDispatchOneArgument: on a call to
new Array(0), we'd like to set the type feedback cell to
a packed elements kind, but we shouldn't do it if the
cell contains the megamorphic sentinel.
* When used from crankshaft, ArrayConstructorStubs can
avoid verifying that the function being called is the
array function from the current native context, relying
instead on the fact that crankshaft issues an
HCheckFunction to protect the constructor call. (this
new minor key is used in LCodeGen::DoCallNewArray(), and
influences code generation in
CodeStubGraphBuilderBase::BuildArrayConstructor()).
* Optimization: the array constructor specialized for
FAST_SMI_ELEMENTS can save some instructions by looking
up the correct map on the passed in constructor, rather
than indexing into the array of cached maps per element
kind.
BUG=
Review URL: https://codereview.chromium.org/18191007
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 17:16:17 +00:00
mstarzinger@chromium.org
c28a6c9ea2
Use HInstructionIterator more broadly for hydrogen.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/18068002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:31:11 +00:00
mstarzinger@chromium.org
8b976da60e
First simplistic implementation of escape analysis.
...
R=jkummerow@chromium.org , titzer@chromium.org
Review URL: https://codereview.chromium.org/17914002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 16:09:54 +00:00
jkummerow@chromium.org
05b94f13c8
Add %_DebugBreakInOptimizedCode() pseudo function call to insert int3/stop instructions into optimized code
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17870002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:48:38 +00:00
jkummerow@chromium.org
c7a9bffbcf
Clean up the usage of V8_TARGET_ARCH_${arch} and V8_HOST_ARCH_${arch}
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18037002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:34:48 +00:00
jkummerow@chromium.org
d8fbf59a7d
Use macros instead of using number directly for x64
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18076002
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:26:01 +00:00
jkummerow@chromium.org
2fb7ab5530
Introduce a notion of "v8_code" in gyp config files.
...
This allows for compiling third-party code (such as ICU) with less
strict flags.
BUG=v8:2745
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18181006
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 15:22:46 +00:00