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
mstarzinger@chromium.org
232c55854f
Add test case for issue 2793 about experimental natives.
...
R=yangguo@chromium.org
BUG=v8:2793
Review URL: https://codereview.chromium.org/19948002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 18:18:55 +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
jochen@chromium.org
8b7164d56d
Add gitignore entries for MSVS files
...
BUG=none
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/19500011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 13:39:21 +00:00