- 10 Mar, 2014 7 commits
-
-
yangguo@chromium.org authored
Also use temporary wrapper functions where possible to mark progress. R=ishell@chromium.org Review URL: https://codereview.chromium.org/172503002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/183743018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/179983002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
Allow Object::InternalFieldCount and Object::GetAlignedPointerFromInternalField to be called from Persistent classes R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/177343002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
Goto does not emit a jump if the target is the next emitted block. However, if there is an unreachable block between Goto and the jump target, we still emit a jump even though the unreachable block is not actually emitted. That jump is unnecessary. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/174883002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/129813008 Patch from Cosmin Truta <ctruta@gmail.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Also refactor the related code in preparation for fixing the range analysis. BUG=v8:3204 LOG=y R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/190713002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Mar, 2014 3 commits
-
-
rafaelw@chromium.org authored
Original Issue: https://codereview.chromium.org/183683022/ TBR=rossberg BUG=v8:2409 LOG=Y Review URL: https://codereview.chromium.org/189513010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
TBR=rossberg BUG= Review URL: https://codereview.chromium.org/190853007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rafaelw@chromium.org authored
R=rossberg@chromium.org, rossberg BUG=v8:2409 LOG=Y Review URL: https://codereview.chromium.org/183683022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Mar, 2014 30 commits
-
-
plind44@gmail.com authored
Port r19715 (0d6d244) Original commit message: 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. BUG= R=plind44@gmail.com Review URL: https://codereview.chromium.org/189433008 Patch from Balazs Kilvady <kilvadyb@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
palfia@homejinni.com authored
Port r19704 (120500a) Patch from Balazs Kilvady <kilvadyb@homejinni.com>. BUG= R=plind44@gmail.com Review URL: https://codereview.chromium.org/189913005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
BUG=None LOG=N TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/191153002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
m.m.capewell@googlemail.com authored
BUG= R=ulan@chromium.org Review URL: https://codereview.chromium.org/190783002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
BUG=None TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/191043002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
AllocationTracker now maintains a map from address range to stack trace that allocated the range. When snapshot is generated the map is used to find construction stack trace for an object using its address. BUG=chromium:277984 LOG=Y R=alph@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/177983003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rodolph.perfetta@arm.com authored
R=ulan@chromium.org Review URL: https://codereview.chromium.org/171603020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
plind44@gmail.com authored
Port r19706 (81fd8dd) Original commit message: 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=mvstanton@chromium.org Review URL: https://codereview.chromium.org/189143006 Patch from Balazs Kilvady <kilvadyb@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
alexandre.rames@arm.com authored
This patch: - uses named registers - reserves all the stack space in one go to avoid operations on csp - uses LDP/STP to copy the arguments R=jochen@chromium.org Review URL: https://codereview.chromium.org/184103003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
alexandre.rames@arm.com authored
Notes about a few TODOs handled in this patch: * In ProfileEntryHookStub::Generate: Stubs are always called with relocation. * In CreateArrayDispatchOneArgument: The branches to registers can't be conditional. We could use a jump table, but there are only 6 different kinds so it is likely not worth it. * In Builtins::Generate_StringConstructCode: Rename the argc register (x0) after its meaning changes. Remove a TODO: using a macro would not make the code clearer. * In Generate_JSEntryTrampolineHelper: Remove the TODO and raise an internal issue to investigate this. * In Disassembler::SubstituteBranchTargetField: Print the target address, but we don't have more info on the target. R=ulan@chromium.org Review URL: https://codereview.chromium.org/185793002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
This relands r19704 with a fix to the test case. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/189823003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Revert "Handle non-power-of-2 divisors in division-like operations", "A64 tweaks for division-like operations." and "Windows build fix.". This reverts commit 19719, 19720 and 19721 because mozilla/ecma/Date/15.9.3.1-1 fails (in release mode only?). TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/189963005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
TBR=ulan@chromium.org Review URL: https://codereview.chromium.org/189093009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/190603003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/190383002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
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
-
ulan@chromium.org authored
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
-
mvstanton@chromium.org authored
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
-
svenpanne@chromium.org authored
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
-
ulan@chromium.org authored
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
-
bmeurer@chromium.org authored
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
-
mvstanton@chromium.org authored
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
-
ulan@chromium.org authored
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
-
yangguo@chromium.org authored
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
-
verwaest@chromium.org authored
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
-
baptiste.afsa@arm.com authored
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
-
mstarzinger@chromium.org authored
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
-
mvstanton@chromium.org authored
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
-
baptiste.afsa@arm.com authored
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
-
yangguo@chromium.org authored
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
-