yurys@chromium.org
49cd3d8a65
Allocation tracker: add separate entry for allocations via V8 API
...
When object is creating via native V8 API calls JS callstack is empty and the allocation is indistinguishable from say compiler allocations. This change adds a separate entry for such allocations.
Since FunctionInfo not necessarily corresponds to a heap object they are now referred to using their index in the list of all FunctionInfos.
BUG=chromium:277984
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/177203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 11:32:01 +00:00
ulan@chromium.org
06af80d42d
Introduce Runtime_GetAllScopesDetails to get all scopes at once for a frame.
...
This will reduce heavy ScopeIterator instantiations.
Once incorporated into chromium, will give 30% speed boost.
BUG=chromium:340285
LOG=Y
R=ulan@chromium.org , Yang, rossberg, ulan
Review URL: https://codereview.chromium.org/181063008
Patch from Andrey Adaykin <aandrey@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 11:03:35 +00:00
mvstanton@chromium.org
f19e15c388
Test FeedbackVectorPreservedAcrossRecompiles needs crankshaft
...
The new test didn't recognize that non-sse2 builds on ia32 would
disable crankshaft.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/189263007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 11:01:03 +00:00
svenpanne@chromium.org
819315db4e
Consistenly handle power-of-2 divisors in division-like operations
...
Lithium currently supports 3 division-like operations on integral operands: "Normal" division (rounding towards zero), flooring division (rounding towards -Infinity) and modulus calculation (the counterpart for the "normal" division). For divisors which are a power of 2, one can efficiently use some bit fiddling to avoid the actual division for such operations. This CL cleanly splits off these operations into separate Lithium instructions, making the code much more maintainable and more consistent across platforms.
There are 2 basic variations of these bit fiddling algorithms: One involving branches and a seemingly more clever one without branches. Choosing between the two is not as easy as it seems: Benchmarks (and probably real-world) programs seem to favor positive dividends, registers and shifting units are sometimes scarce resources, and branch prediction is quite good in modern processors. Therefore only the "normal" division by a power of 2 is implemented in a branch-free manner, this seems to be the best approach in practice. If this turns out to be wrong, we can easily and locally change this.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/175143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:36:28 +00:00
ulan@chromium.org
a1e59cca73
Reduce heavy runtime calls from debug mirrors.
...
Cache results of some heavy calls into C++.
This alone will boost the speed up to 18% on some real world scenarios.
BUG=chromium:340285
LOG=Y
R=ulan@chromium.org , yangguo@chromium.org , Yang, rossberg, ulan, yurys
Review URL: https://codereview.chromium.org/184483004
Patch from Andrey Adaykin <aandrey@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:25:53 +00:00
bmeurer@chromium.org
137249916f
Track global cells as special side effects in GVN.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/188543004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:14:03 +00:00
mvstanton@chromium.org
1812f63fd2
Moved type feedback vector to SharedFunctionInfo.
...
Type Vector followup: the type vector currently lives off the code object. This CL moves it to the SharedFunctionInfo, facilitating re-use and continued use in crankshafted code if desired.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/178463007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:12:17 +00:00
ulan@chromium.org
31f67939cb
Check and clear date cache in DateCurrentTime, DateLocalTimezone and getTimezoneOffset.
...
BUG=142141
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/173793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:01:00 +00:00
yangguo@chromium.org
143902bebf
Revert "Introduce intrinsics for double values in Javascript."
...
This reverts r19704.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/189533008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:49:28 +00:00
verwaest@chromium.org
8a3d715250
Revert "Use Representation::Integer32() for smi types on 32-bit-tagged systems."
...
Due to performance regression.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/189843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:29:07 +00:00
baptiste.afsa@arm.com
a1102885e0
A64: Minor improvement in FullCodeGenerator::VisitObjectLiteral.
...
This patch avoid to push some values on the stack when it's not needed.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/183193005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:19:51 +00:00
mstarzinger@chromium.org
42169bf3df
Update .gitignore to new test262 package name.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/188923003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:19:48 +00:00
mvstanton@chromium.org
1d3652ebe6
Symbols for type cells. We can make more efficient code to check against type cells in the future if we use symbols, guaranteed not to conflict with user code. Currently, the "symbols" are the hole and undefined. Undefined may come in from the outside.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/181283003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:10:18 +00:00
baptiste.afsa@arm.com
67265201e2
A64: Tidy up some TODOs in GenerateRecordCallTarget.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/184433002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:06:24 +00:00
yangguo@chromium.org
2aefde4443
Introduce intrinsics for double values in Javascript.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/178583006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:05:10 +00:00
yangguo@chromium.org
8472e0f02b
Remove duplicates in runtime macros.
...
Each item in INLINE_RUNTIME_FUNCTION_LIST had to have a duplicate
entry in RUNTIME_FUNCTION_LIST in order to match the comment.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/177313005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:49:02 +00:00
marja@chromium.org
bd1fb97d5c
Remove Script::SetData and the script_data parameter from Script::(Compile|New).
...
This feature makes it possible to associate data with a script and get it back
when the script is compiled or when an event is handled. It was historically
used by Chromium Dev Tools, but not any more. It is not used by node.js.
Note: this has nothing to do with the preparse data, despite the confusing name.
The preparse data is passed as ScriptData*.
Note 2: This is the same as r19616 ( https://codereview.chromium.org/184403002/ )
with a unused variable fix in bootstrapper.cc.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/185533014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:43:54 +00:00
yangguo@chromium.org
2454b8e74d
Harmony: move implementation of Math.log1p and Math.expm1 to Javascript.
...
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/179533003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:42:10 +00:00
bmeurer@chromium.org
c6bfbace87
ia32: Simplify inlined Smi code for SAR.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/188483002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:36:53 +00:00
yangguo@chromium.org
ea8368f471
Use fast path for sliced and external strings in ConvertCase.
...
R=dcarney@chromium.org
BUG=v8:3180
LOG=N
Review URL: https://codereview.chromium.org/180063002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:36:18 +00:00
bmeurer@chromium.org
a4d3fbdc8f
Optimistically untag the input in tagged-to-i.
...
Also drop redundant jmp instruction in deferred code.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/182723003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 08:36:13 +00:00
jkummerow@chromium.org
10757a7e0d
Prepare push to trunk. Now working on version 3.25.6.
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/186593005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 17:42:58 +00:00
ishell@chromium.org
997ce05289
Fix for failing asserts in HBoundsCheck code generation on x64: use proper cmp operation width instead of asserting that Integer32 values should be zero extended. Similar to chromium:345820.
...
BUG=349465
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/188703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 16:22:47 +00:00
jkummerow@chromium.org
1cc0bafc07
Fix HConstants with Smi-ranged HeapNumber values
...
BUG=chromium:349878
LOG=y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/186123003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 16:21:09 +00:00
ulan@chromium.org
5af7d10af5
Mark mjsunit/whitespaces as slow and timeout for a64.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/182253008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 14:15:40 +00:00
mvstanton@chromium.org
6115a006fd
Bugfix for 349874: we incorrectly believe we saw a growing store
...
When we set an out of bounds array index, the index might be so large that
it causes the array to go to dictionary mode. It's better to avoid
"learning" that this was a growing store in that case.
This fix also partially reverts a fix for bug 347543, as this fix is
comprehensive and satisfies that repro case as well (partial revert of
v19591).
BUG=349874
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/188643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 13:07:51 +00:00
verwaest@chromium.org
cd6f3ef088
Only use the non-strict-arguments-stub if the store site is non-strict.
...
BUG=349874
LOG=N
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/176843018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 12:19:06 +00:00
jkummerow@chromium.org
5ea3f0004a
Let HTransitionElementsKind take part in RestoreActualValues phase
...
BUG=chromium:349853
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/183753005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 12:13:49 +00:00
vegorov@chromium.org
1fc8ad9486
Fix VPrintHelper used on Windows.
...
VPrintHelper would silently ignore the stream given to it if application is in GUI mode (no console is attached) and redirect output to the debugger via OutputDebugString.
Such redirection makes sense only if passed stream is either stderr or stdout. Don't redirect any other stream to the debugger.
Reorder clauses in VPrintHelper to make condition more readable.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/177413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 11:55:47 +00:00
yangguo@chromium.org
285f253af1
Remove outdated assertion scope.
...
R=jkummerow@chromium.org
BUG=349870
LOG=N
Review URL: https://codereview.chromium.org/182003004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 11:51:53 +00:00
bmeurer@chromium.org
01ebd92a07
Add quickcheck targets for modes, builds and arches.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/181013014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 10:05:33 +00:00
yangguo@chromium.org
e2e2f4050d
Fix issues with JSON stringify replacer array
...
If the replacer array contains a property key we should include the
property even if the property is non enumerable or if it is a non own
property.
String and Number wrappers in the replacer array should be treated as
string and number values.
R=yangguo@chromium.org
BUG=v8:3200, v8:3201
LOG=Y
Review URL: https://codereview.chromium.org/187053003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 09:50:53 +00:00
verwaest@chromium.org
7bf33c53eb
Use Representation::Integer32() for smi types on 32-bit-tagged systems.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/187353005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 09:49:10 +00:00
verwaest@chromium.org
f913c3b492
Also delete force representations that have no uses.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/187773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 09:47:27 +00:00
titzer@chromium.org
14e81c8e1d
Prepare push to trunk. Now working on version 3.25.5.
...
R=hpayer@chromium.org
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/187833002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 15:10:32 +00:00
hpayer@chromium.org
3f9d9ab8fd
Ignore slots buffer overflow when recording entries of the allocation sites scratchpad.
...
BUG=
R=mstarzinger@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/181063033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 14:04:21 +00:00
jarin@chromium.org
52fd520c96
Fix materialization of captured objects in adapted arguments.
...
R=mstarzinger@chromium.org
BUG=348512
LOG=N
Review URL: https://codereview.chromium.org/183063006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 12:57:18 +00:00
jarin@chromium.org
7ac668f753
Deoptimization fix for HPushArgument.
...
HPushArgument should never be used in a simulation environment
because the slot addresses for the arguments can be off (e.g.,
due to on-stack arguments object of an inlined caller).
R=mstarzinger@chromium.org
BUG=v8:3183
LOG=N
Review URL: https://codereview.chromium.org/178193026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 12:45:46 +00:00
yangguo@chromium.org
26e4f4cc1c
Handle exception when retrieving toJSON function in JSON.stringify.
...
R=mvstanton@chromium.org
BUG=349335
LOG=N
Review URL: https://codereview.chromium.org/187603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 10:54:35 +00:00
rossberg@chromium.org
758a688bb6
Add --es-staging flag
...
...and remove some obsolete ones.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/165723008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 10:07:07 +00:00
jkummerow@chromium.org
3df5573195
x64: Fix LMathMinMax for constant Smi right-hand operands
...
BUG=chromium:349079
LOG=y
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/186593003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 09:49:07 +00:00
mstarzinger@chromium.org
9ab32061ed
Print properly signed displacement in disassembler.
...
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/178193028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 09:28:26 +00:00
mstarzinger@chromium.org
ee8cbc4fc8
Fix issue with setting __proto__ on a value
...
LOG=N
BUG=v8:3172
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/174113003
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 08:58:38 +00:00
machenbach@chromium.org
bc21f42563
Refactoring: Make script dependencies more object-oriented in push and merge scripts.
...
- Connect the top-level scripts via inheritance and remove top-level functions
- Options and option processing can be extended from base to subclass script
This CL is split off from https://codereview.chromium.org/173983002/
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/185263003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 23:27:27 +00:00
plind44@gmail.com
66d1246f83
MIPS: Remove all uses of field-tracking flags that do not make decisions but are subject to existing information.
...
Port r19650 (a51b043)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/180803010
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 20:22:56 +00:00
plind44@gmail.com
66b794cbce
MIPS: Push safepoint registers in deferred number-to-i/u only on-demand.
...
Port r19649 (49f8c2d)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/186673004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 20:16:24 +00:00
alexandre.rames@arm.com
83c7b60293
A64: Move veneer emission checking in the Assembler.
...
The previous heuristic would break as a significant amount of code could be
generated without checking for veneer emission.
The veneer emission is now done in the Assembler, in a very similar way to
constant pool emission.
BUG=v8:3177
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/181873002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 15:54:12 +00:00
mstarzinger@chromium.org
827adfe45a
Print properly signed displacement in IA32 disassembler.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/176993004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 13:07:00 +00:00
mvstanton@chromium.org
45ebabfbec
Refactoring to clean up duplicate code in Heap::Allocate methods.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/170703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 12:51:40 +00:00
verwaest@chromium.org
9b8021ad29
Remove all uses of field-tracking flags that do not make decisions but are subject to existing information.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/173963002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 12:48:17 +00:00