Commit Graph

19384 Commits

Author SHA1 Message Date
jarin@chromium.org
c7685a59f0 [turbofan] Use range types to type and lower arithmetic ops.
This is based on Georg's work on typing arithmetic operations (https://codereview.chromium.org/658743002/).

Instead of weakening to bitset types, we weaken to the closest 2^n
limit if we see that we are re-typing a node with a range type (which
means that the node can be part of a cycle, so we might need
to speed up the fixpoint there).

BUG=
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/636283009

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:40:43 +00:00
machenbach@chromium.org
a8ff27ab55 Whitespace change to trigger bots.
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/667213006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:38:25 +00:00
machenbach@chromium.org
12ed19d412 Switch release scripts to new git workflow.
BUG=410721
TBR=tandrii@chromium.org

Review URL: https://codereview.chromium.org/676713003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 14:27:15 +00:00
dcarney@chromium.org
a280b89b6f fix another static initializer
TBR=bmeurer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/666333004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:59:48 +00:00
dslomov@chromium.org
96105a90fc harmony-scoping: Allow 'const' iteration variables in strict mode.
R=rossberg@chromium.org
BUG=v8:2506
LOG=N

Committed: https://code.google.com/p/v8/source/detail?r=24834

Review URL: https://codereview.chromium.org/671913002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:30:20 +00:00
akos.palfi@imgtec.com
0f1548405a MIPS: Classes: implement 'new super'.
Port r24825 (b26f0181)

BUG=
R=dslomov@chromium.org, dusan.milosavljevic@imgtec.com

Review URL: https://codereview.chromium.org/676703002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 12:05:46 +00:00
svenpanne@chromium.org
b3fa671ea2 Reland 'Simplify TurboFan's c1visualizer file handling.'
This is r24819 plus some tiny fixes to make the Mac toolchain happy.

TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/676673002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:56:26 +00:00
dslomov@chromium.org
707ed29a51 Revert "harmony-scoping: Allow 'const' iteration variables in strict mode."
This reverts commit r24834 for breaking debug tests.

TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/672193002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:55:19 +00:00
bmeurer@chromium.org
4ac3d1407b Remove deprecated lexer-shell.
R=marja@chromium.org

Review URL: https://codereview.chromium.org/658633003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:42:30 +00:00
ishell@chromium.org
209855a6b6 More details printed for Map, DescriptorArray and TransitionArray.
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/659363002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:31:33 +00:00
yangguo@chromium.org
aaa104c8da De-virtualize snapshot sink.
R=vogelheim@chromium.org

Review URL: https://codereview.chromium.org/669133003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:23:57 +00:00
dcarney@chromium.org
4568813a34 fix build after r24830
TBR=bmeurer@chromium.org

BUG=

Review URL: https://codereview.chromium.org/675733002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:19:44 +00:00
dslomov@chromium.org
b54f7d3c46 harmony-scoping: Allow 'const' iteration variables in strict mode.
R=rossberg@chromium.org
BUG=v8:2506
LOG=N

Review URL: https://codereview.chromium.org/671913002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 11:18:50 +00:00
mstarzinger@chromium.org
778c500df7 Make sure floating phi nodes are coupled to their control (2).
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/673513004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 10:33:49 +00:00
bmeurer@chromium.org
80836787a3 [turbofan] Improve code generation for inline comparisons with zero.
TEST=cctest,unittests
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/669133004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 10:22:06 +00:00
yangguo@chromium.org
cedd140126 Fix memory leak in RootIndexMap.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/671153002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:32:18 +00:00
dcarney@chromium.org
5f83dabb60 [turbofan] split compilation stats off from HStatistics and track high water marks
R=jarin@chromium.org

BUG=

Review URL: https://codereview.chromium.org/669053002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:14:35 +00:00
yangguo@chromium.org
b6f66b5fc7 Second compile fix to r24826.
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/645163009

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 09:01:09 +00:00
yangguo@chromium.org
c5a040fcf8 Fix compile errors in r24826.
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/656793005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:56:54 +00:00
yangguo@chromium.org
601b776e7e Use hash map to look for objects in the root array when serializing.
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/645533003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:43:17 +00:00
dslomov@chromium.org
98c208447d Classes: implement 'new super'.
R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

Committed: https://code.google.com/p/v8/source/detail?r=24822

Review URL: https://codereview.chromium.org/665773003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:32:23 +00:00
yangguo@chromium.org
7753ace135 Small fixes for the code serializer.
- assertions regarding max heap object size.
- ensure string table capacity upfront.

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/671843003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:25:42 +00:00
dslomov@chromium.org
6442348d6e Revert "Classes: implement 'new super'."
This reverts commit r24822 for breaking debug compilation.

TBR=ishell@chromium.org

Review URL: https://codereview.chromium.org/662253003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:21:30 +00:00
dslomov@chromium.org
99cafa0d5a Classes: implement 'new super'.
R=ishell@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

Review URL: https://codereview.chromium.org/665773003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 08:11:51 +00:00
svenpanne@chromium.org
ea3a205af2 Revert "Simplify TurboFan's c1visualizer file handling."
This reverts r24819, it broke the build on Mac due to header incompatibilities.

TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/672873002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:36:39 +00:00
bmeurer@chromium.org
6d5f6914f7 [turbofan] Currently we cannot handle typed arrays bigger than 2GiB.
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/676643002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:34:36 +00:00
svenpanne@chromium.org
c5a8743a1b Simplify TurboFan's c1visualizer file handling.
Still having GetTurboCfgFileName in Isolate is ugly, but if we decide that we
don't want to truncate the output file (which would be consistent with
--trace-hydrogen), this could be moved to TurboCfgFile where it actually
belongs.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/666223003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 07:26:13 +00:00
dcarney@chromium.org
887b3ca079 Cleanup ConsStringIteratorOp.
R=yangguo@chromium.org

BUG=

Review URL: https://codereview.chromium.org/663313003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 05:57:01 +00:00
bmeurer@chromium.org
c5b00bf6df Skip webkit/array-iterate-backwards for TF.
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/672113002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 04:18:17 +00:00
bmeurer@chromium.org
85e86ad745 Skip webkit/dfg-int-overflow-in-loop for TF.
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/652183005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-23 04:16:22 +00:00
rodolph.perfetta@arm.com
ecbfc43f37 ARM64: Fix stack manipulation.
Builtins::Generate_StringConstructCode was claiming stack space instead of
giving it back.

BUG=chromium:425585
LOG=Y
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/672623003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 18:24:20 +00:00
adamk@chromium.org
98e0eac76f Speed up creation of Objects whose prototype has dictionary elements
This speeds up both the case from the bug (using Object.create) but also
takes care ofthe "{ __proto__: obj  }" syntax, which was previously (and
erroneously) being treated the same as setting the prototype dynamically
from script using the __proto__ setter or Object.setPrototypeOf.

BUG=chromium:422754
LOG=y
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/667253002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 18:16:35 +00:00
adamk@chromium.org
04db7c8793 Fix {get,set}ter-on-elements tests to run through all creation functions
setter-on-elements had the wrong length hardcoded in a for loop over the
creation functions (getter-on-elements had the right length, but seemed
worth future-proofing).

R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/643143005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 17:21:53 +00:00
titzer@chromium.org
5a1774268a Add Terminate operator.
Terminate is need for non-terminating loops (NTLs) that can appear after optimizing control flow. It gathers the control and effect(s) from a NTL and connects them to end so that they are not dead-code removed.

R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/651843004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 17:15:38 +00:00
jochen@chromium.org
7a70d6a0eb Update intialization of vtune support.
In R23940 (https://code.google.com/p/v8/source/detail?r=23940) it introduces
 Isolate::CreateParams and mentions that V8::SetJitCodeEventHandler should either
 be passed to Isolate::New as well, or invoked via the Isolate.

 When Chrome as embedder of V8, we will set the Jit Code event handler for Vtune
 support during the initialization of renderer process and V8 has be initialized
 at that time. It's better that we invoke V8::SetJitCodeEventHander via the Isolate.
 So we change the vTune::InitializeVtuneForV8(v8::Isolate::CreateParams& params) to
 vTune::InitializeVtuneForV8(v8::Isolate* isolate).

 we will do corresponding changes in chromium code if this patch is landed and Chromium
 updates V8 to the
 new release branch.

 some part of this patch is provided by denis.pravdin@intel.com.

BUG=
R=danno@chromium.org, jochen@chromium.org

Review URL: https://codereview.chromium.org/655183002

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 15:30:50 +00:00
dslomov@chromium.org
8de3b7e129 Stage harmony-strings.
R=rossberg@chromium.org, yangguo@chromium.org

Review URL: https://codereview.chromium.org/666353002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:58:25 +00:00
titzer@chromium.org
f843327ea0 Cleanups to Verifier.
This CL broadens the checks done by the verifier in untyped mode and introduces some subroutines to shorten the code a bit.

Introduce routines CheckUpperIs() CheckUpperMaybe() and CheckValueInputIs() that are called unconditionally by the verifier. If the typing mode is untyped, then don't check anything.

Also added a couple checks for Merge and Loop nodes that catch bugs where the operator and the node disagree on input counts (a bug encountered today).

R=mstarzinger@chromium.org, rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/669073002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:39:41 +00:00
dslomov@chromium.org
db000e307a Remove [[PROTOTYPE]] from ObjectToStringHarmony
harmony-tostring needs to emulate InstallFunctions --- InstallFunctions will fail
in Debug builds because the `toString` property already exists in Object.prototype.

The fix is to add some of the other features from InstallFunctions() to the
setup of ObjectToStringHarmony.

R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/667263004

Patch from Caitlin Potter <caitpotter88@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 14:06:15 +00:00
wingo@igalia.com
6c9bab5c74 Array.prototype.{reduce, reduceRight}: Wrong order of operations when determining initial value.
BUG=v8:3534
LOG=
R=svenpanne@chromium.org, wingo@igalia.com

Review URL: https://codereview.chromium.org/614733002

Patch from Diego Pino <dpino@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 13:13:19 +00:00
machenbach@chromium.org
5680786c21 Move js perf tests to a common root on the perf dashboard.
BUG=
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/667373004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 13:04:08 +00:00
machenbach@chromium.org
e48e3e53ae Add an --msan flag to run-tests.py.
Currently a no-op and added only for consistency with ASan/TSan.

BUG=chromium:425187
R=machenbach@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/667903004

Patch from Sergey Matveev <earthdok@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 12:54:35 +00:00
machenbach@chromium.org
846dfa1a84 Whitespace change to test new git workflow.
TBR=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/638883006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:32:39 +00:00
mstarzinger@chromium.org
e4fe4e2c5f Switch ScheduleLateNodeVisitor to use explicit queue.
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/672583002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:31:12 +00:00
bmeurer@chromium.org
6619a7975d [turbofan] Add support for deferred code.
Branch can now have an optional hint, when the condition is
likely true or false, and if such a hint is present the other
basic block will be marked as deferred and placed at the end
of the function.

We currently use this feature for tagging int32/uint32 in
change lowering, and for load/store bounds checks in simplified
lowering.

TEST=cctest,unittests
R=dcarney@chromium.org

Review URL: https://codereview.chromium.org/642883003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:24:55 +00:00
dslomov@chromium.org
1efcf09375 Perf tests for fromCodePoint and codePointAt.
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/670463005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:08:42 +00:00
sigurds@chromium.org
81420f003b Add FRINTP (round towards positive infinity) instruction.
Macro Assember, assembler and simulator for ARM64 were missing FRINTP.

R=rodolph.perfetta@arm.com, ulan@chromium.org

Review URL: https://codereview.chromium.org/669923002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 11:06:22 +00:00
balazs.kilvady@imgtec.com
1479cb96c3 MIPS64: Spread the knowledge!
Port r24793 (c0c2b0d)

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 10:26:38 +00:00
bmeurer@chromium.org
08e20d1291 Disable libstdc++ debug mode on x64 for now.
TBR=mstarzinger@chromium.org

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:37:42 +00:00
mstarzinger@chromium.org
cb4f2520aa Remove testing artifacts from Schedule::AddFoo.
R=jarin@chromium.org

Review URL: https://codereview.chromium.org/641553003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 09:14:48 +00:00
dslomov@chromium.org
b664c12235 Flatten the string in StringToDouble function.
R=yangguo@chromium.org
BUG=chromium:425551
LOG=N

Review URL: https://codereview.chromium.org/654763003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:19:05 +00:00