ulan@chromium.org
52c421956a
Make objects embedded in optimized code weak.
...
This introduces a global weak hash table that maps objects embedded in
optimized code to dependent code lists. Using this table we can deoptimize
optimized code whenever a weak object embedded in the code dies.
BUG=v8:2073
R=hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23477061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 07:25:24 +00:00
bmeurer@chromium.org
42dc3faf9a
Add support to load/store byte fields.
...
This adds a new Byte representation and support for zero-extended
loads in HLoadNamedField and truncated stores in HStoreNamedField.
R=mvstanton@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=17079
Review URL: https://codereview.chromium.org/25696004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 07:13:43 +00:00
bmeurer@chromium.org
5e8c902991
Revert "Add support to load/store byte fields." and "MIPS: Add support to load/store byte fields.".
...
This reverts commit r17079 and r17085. Will reland after fix.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/25679008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-04 05:47:35 +00:00
danno@chromium.org
d4bcf5d730
Fix test262 failures and x64 compile failure.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/25604008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 15:27:51 +00:00
bmeurer@chromium.org
9492c1b540
Add support to load/store byte fields.
...
This adds a new Byte representation and support for zero-extended
loads in HLoadNamedField and truncated stores in HStoreNamedField.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/25696004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 13:27:53 +00:00
danno@chromium.org
908a7dc2a8
Improve and simplify removal of unreachable code
...
- Detect unreachable basic blocks of code either following an unconditional deopt or after a provably untaken branch of HBranch or HCompareObjectEqAndBranch instructions.
- Emit dummy uses in unreachable blocks during Hydrogen -> Lithium translation.
BUG=chromium:258519
R=jkummerow@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22876009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-02 11:43:41 +00:00
olivf@chromium.org
9459ed3ab4
Revert "Hydrogenisation of binops"
...
This reverts r17052-17054 for various build breaks.
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/25571002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 18:00:02 +00:00
olivf@chromium.org
7873f35eb2
Hydrogenisation of binops
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/24072013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 15:24:56 +00:00
bmeurer@chromium.org
f1c28e77ff
Lazily save double registers for HCallRuntime instructions within Hydrogen code stubs.
...
Right now we eagerly save all allocatable double registers upon
entry to every Hydrogen code stub that uses HCallRuntime, and
restore them when we return. Since the HCallRuntime is on the
fallback path for code stubs, this is both a waste of time and
stack space in almost every case.
This patch adds a flag to the HCallRuntime, which controls whether
the instruction saves the double register itself (using the save
doubles flag for the CEntryStub), or whether its up the surrounding
code to handle the clobbering of double registers.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/23530066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 11:56:42 +00:00
rodolph.perfetta@gmail.com
c817008da7
ARM: Tweak LoadKeyed.
...
Avoid corrupting its input.
BUG=none
TEST=none
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/25231005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 10:44:00 +00:00
marja@chromium.org
b267a955d8
Refactor PropertyCallbackInfo & FunctionCallbackInfo, part 3.
...
This CL starts using positive array indices instead of negative array indices
for the PropertyCallbackInfo and FunctionCallbackInfo fields. Also, the indices
match now, so they can be unified in the next step.
BUG=
R=dcarney@chromium.org , mstarzinger@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=17015
Review URL: https://codereview.chromium.org/24488006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 09:24:13 +00:00
marja@chromium.org
9da7781258
Revert "Refactor PropertyCallbackInfo & FunctionCallbackInfo, part 3."
...
This reverts commit 977bfe3e9353ead1039878597590ffbd7dd5e725.
This might be responsible of the Linux Webkit test failures.
BUG=
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/25260005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-30 15:33:51 +00:00
rodolph.perfetta@gmail.com
e7669d9308
ARM: Allow function inlining with context change.
...
BUG=none
TEST=none
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/25247002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-30 15:08:20 +00:00
marja@chromium.org
a81d7b1e7c
Refactor PropertyCallbackInfo & FunctionCallbackInfo, part 3.
...
This CL starts using positive array indices instead of negative array indices
for the PropertyCallbackInfo and FunctionCallbackInfo fields. Also, the indices
match now, so they can be unified in the next step.
BUG=
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/24488006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-30 14:09:51 +00:00
verwaest@chromium.org
0f715540a2
Tag handlers as HANDLER rather than STUB.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/25044002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-30 13:53:21 +00:00
haitao.feng@intel.com
c35559ff27
Refactor register allocator a little bit
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/24438006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-28 00:48:08 +00:00
rodolph.perfetta@gmail.com
1726140330
ARM: Let the register allocator handle the context register.
...
BUG=none
TEST=none
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/24596002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-27 13:59:28 +00:00
yangguo@chromium.org
2dec4372d8
Finish control flow after throw if not inlined.
...
R=jkummerow@chromium.org
BUG=v8:2868
Review URL: https://codereview.chromium.org/24768002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-27 13:48:19 +00:00
marja@chromium.org
2dc3eca47d
Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 2.
...
This step reorders the FunctionCallbackInfo fields.
BUG=
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23484037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-26 10:28:00 +00:00
yangguo@chromium.org
10b45a5bc4
Less aggressive polling when concurrently compiling for OSR.
...
Changes include:
- completed concurrent OSR tasks trigger a stack check interrupt.
- polling for completion is now guarded by a stack check.
- circular buffer for completed OSR tasks instead of list.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24237009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-25 08:26:11 +00:00
haitao.feng@intel.com
f1d1dd604d
Fix a typo
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/24356004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-25 00:30:52 +00:00
titzer@chromium.org
44f733b40d
Delete Runtime_NotifyOSR.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23600072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 15:27:49 +00:00
rodolph.perfetta@gmail.com
6d8f4d52bf
ARM: Tweak Math.exp.
...
Avoid corrupting the input and small assembly tuning.
BUG=none
TEST=test/mjsunit/lithium/MathExp.js
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/24278004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 10:40:03 +00:00
bmeurer@chromium.org
70b8e2d013
Turn the NumberToStringStub into a hydrogen stub.
...
This adds a BuildLookupNumberStringCache() in Hydrogen, which will
be used by the hydrogen version of StringAddStub, in addition to the
hydrogen version of NumberToStringStub.
R=mvstanton@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=16874
Review URL: https://codereview.chromium.org/23726041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 09:31:07 +00:00
olivf@chromium.org
42ce84134f
Revert "Allow control intructions to have side effects."
...
Breaks arm build.
BUG=
TBR=titzer@chromium.org
Review URL: https://codereview.chromium.org/24255015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 18:57:32 +00:00
olivf@chromium.org
3e13af46e4
Allow control intructions to have side effects.
...
As a first application convert HCompareGeneric to a control Instruction, thus avoid materializing a boolean result value.
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/23710070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 16:56:34 +00:00
ulan@chromium.org
b99802f50c
Out-of-line constant pool on Arm: Stage 1 - Free up r7 for use as constant pool pointer register
...
First stage of implementing an out-of-line constant pool on Arm. This CL
frees up register r7 for use as a constant pool pointer in later stages.
BUG=
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/21063002
Patch from Ross McIlroy <rmcilroy@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 15:01:33 +00:00
machenbach@chromium.org
576515ebf3
Revert "Turn the NumberToStringStub into a hydrogen stub."
...
This reverts commit 16874 for breaking the tests.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23440064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 11:22:35 +00:00
bmeurer@chromium.org
9c48fbda75
Turn the NumberToStringStub into a hydrogen stub.
...
This adds a BuildLookupNumberStringCache() in Hydrogen, which will
be used by the hydrogen version of StringAddStub, in addition to the
hydrogen version of NumberToStringStub.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/23726041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 10:58:45 +00:00
bmeurer@chromium.org
eac59b81ff
Fixed a bug in CopyBytes() and new test cases for ARM macro assembler
...
TEST=cctest/test-macro-assembler-arm
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23447035
Patch from Bangfu Tao <bangfu.tao@samsung.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 08:06:58 +00:00
titzer@chromium.org
94a0a95b7a
Use Unique<Cell> and Unique<PropertyCell> in LoadGlobalCell and StoreGlobalCell.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/24072016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 12:32:31 +00:00
titzer@chromium.org
05babb3dca
Use Unique<Map> in HTransitionElementsKind.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23693006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 12:25:00 +00:00
bmeurer@chromium.org
ae4234b488
Save one branch for normal heap number un-tagging.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23496041
Patch from Bangfu Tao <bangfu.tao@samsung.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 09:57:58 +00:00
mvstanton@chromium.org
1b576e1e86
Some cleanup fixes
...
* Consolidated CopyJSObject and CopyJSObjectWithAllocationSite
* Factory.h helper for struct maps.
* BuildFastLiteral shouldn't create allocation sites in pretenuring mode.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/24255005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 09:27:40 +00:00
titzer@chromium.org
e1ebbcbb02
Use Unique<Map> in CompareMap.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/24243005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 17:02:57 +00:00
yangguo@chromium.org
32ceb91735
Refactor back edge table related code into a new class.
...
This is mostly moving and renaming, except for the BackEdgeTableIterator.
Motivation is that the back edges in unoptimized code has nothing to do with the deoptimizer.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23526069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:08:08 +00:00
titzer@chromium.org
8aafabc24c
Use UniqueSet<T> and Unique<T> in HCheckMaps and HCheckValue.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23604062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:07:27 +00:00
bmeurer@chromium.org
bf192205ce
Add HLoadRoot hydrogen instruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23601038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 06:08:13 +00:00
bmeurer@chromium.org
45bd2f50cd
Move NumberToStringStub::GenerateLookupNumberStringCache to the MacroAssembler.
...
This renames the method to LookupNumberStringCache() and puts it into
the MacroAssembler in preparation of the NumberToStringStub Hydrogen
conversion.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/23618056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 06:07:23 +00:00
bmeurer@chromium.org
3181343958
Turn HCompareHoleAndBranch into a HUnaryControlInstruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/24195009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 06:06:32 +00:00
rodolph.perfetta@gmail.com
86e3d4ae56
ARM: Fix simulator when using hard floating point ABI.
...
BUG=none
TEST=make arm.release.check armfloatabi=hard
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/23496062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-18 15:13:18 +00:00
mstarzinger@chromium.org
ff2719a075
Remove obsolete Runtime_CreateObjectLiteralShallow.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/24096019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-18 15:08:17 +00:00
olivf@chromium.org
a5e0f768b3
Add a mechanism to override the detected cpu features.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23523060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 13:02:25 +00:00
rodolph.perfetta@gmail.com
87d0659e76
ARM: Tweak StoreKeyed.
...
Avoid corrupting its input in some cases.
BUG=none
TEST=test/mjsunit/lithium/StoreKeyed*.js
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/23600054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 12:37:31 +00:00
dcarney@chromium.org
0e90c68908
reland 16744: add context save for GenerateFastApiCall
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23903053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 11:37:48 +00:00
bmeurer@chromium.org
722c61922d
Remove unused HIsNumberAndBranch instruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23691067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 11:27:24 +00:00
dcarney@chromium.org
c09d00d1b0
revert 16744 for breaking build
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24196002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 07:53:56 +00:00
svenpanne@chromium.org
87ff987f70
Refactoring only: Make it clear that MOD is special.
...
LArithmeticD should really be 5 different instructions... :-/
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23800005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 07:29:26 +00:00
dcarney@chromium.org
0020146f24
add context save for GenerateFastApiCall
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23461039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 07:19:50 +00:00
olivf@chromium.org
42879d1038
Orthogonalize Lithium binary op instructions.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23703014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 15:24:49 +00:00