Commit Graph

16385 Commits

Author SHA1 Message Date
bmeurer@chromium.org
2cdb96d7bf [ia32] Use more efficient encoding when loading integer constants.
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 12:50:13 +00:00
bmeurer@chromium.org
c95ba9bd04 [turbofan] Eliminate redundant masking operations for word8/word16 stores.
There's no need to apply 0xff when storing 8-bit values or 0xffff when
storing 16-bit values.

TEST=unittests
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 12:20:45 +00:00
bmeurer@chromium.org
52ec8a702f [ia32] Fix for no SSE4.1.
TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 12:16:27 +00:00
dslomov@chromium.org
53c9f0bb3d Keyed stores to super where key is a name.
R=arv@chromium.org, ishell@chromium.org
BUG=v:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 11:36:22 +00:00
dslomov@chromium.org
49e5b0d60c Simplify Scope and ScopePtr conversions.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 10:40:18 +00:00
dusan.milosavljevic@imgtec.com
3758fceca9 MIPS: Improve runtime detection and compatibility wrt arch. revisions.
TEST=
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 09:39:23 +00:00
bmeurer@chromium.org
d143beb658 [ia32] Better code generation for materialization of float/double constants.
TEST=cctest,mjsunit
R=mstarzinger@chromium.org, jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 09:32:59 +00:00
jochen@chromium.org
c5ee3ae511 Store local copies of flags needed on the background thread
BUG=none
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 09:21:46 +00:00
bmeurer@chromium.org
f0452e2193 [turbofan] Add support for ARM64 Ubfx
Support selecting Ubfx for shift-mask and mask-shift operations. Also, rename
the shifts to match the instruction names.

BUG=
R=bmeurer@chromium.org

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

Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 09:18:31 +00:00
svenpanne@chromium.org
b09998f13c Simplify AST ID generation.
Every CompilationInfo has an ID generator now, and it is never
reset/copied/assigned. Simplified FunctionState.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 08:16:13 +00:00
jochen@chromium.org
0fae280e4a Make Profiler::running_ atomic.
It's used from multiple threads

BUG=none
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 07:51:35 +00:00
weiliang.lin@intel.com
c09abc87ab X87: Updates to maintain flag --vector-ics
port r24548.

original commit message:

   Updates to maintain flag --vector-ics

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 07:05:20 +00:00
akos.palfi@imgtec.com
d39fc16a4b MIPS64: Fix TruncatingDiv.
- Fix the Macroassembler::TruncatingDiv to compute
  the correct result even when the magic number is negative.
- Fix the MULT instruction in the simulator.

TEST=mjsunit/compiler/division-by-constant
BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 16:15:28 +00:00
titzer@chromium.org
c605a8c1da Smarter representation selection for phis.
R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 16:01:18 +00:00
yangguo@chromium.org
8659e50723 Update unicode to 7.0.0.
And do not use code points with PATTERN_* property for identifier start.
Maintain that \u180E is a white space character.

BUG=v8:2892
LOG=Y
R=dpino@igalia.com, mathias@qiwi.be

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:55:03 +00:00
arv@chromium.org
c8b1c3e784 Classes: Add support for toString
BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:48:48 +00:00
mstarzinger@chromium.org
f99fd3867b Remove premordial math functions from native context.
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:42:31 +00:00
jochen@chromium.org
f4e4091532 Resolve race between starting the profiler thread and the logging timer
BUG=none
TBR=ishell@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 14:08:12 +00:00
balazs.kilvady@imgtec.com
e86626ed40 MIPS: Updates to maintain flag --vector-ics
Port r24458 (18af11b)

Original commit message:
Experimental feature vector-ics needs some maintenance.

BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 11:55:24 +00:00
jochen@chromium.org
9bbf788750 Get rid of isolate state.
it's not thread safe, and there are only initialized isolates now.

BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 11:51:57 +00:00
jochen@chromium.org
76441ed516 Make Profiler::tail_ atomic
it's used on several threads

BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 11:33:31 +00:00
ulan@chromium.org
5b463207d7 Move fdlibm in src/third_party.
BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 11:19:51 +00:00
bmeurer@chromium.org
9b306893a3 [turbofan] Properly emit bounds checks for typed array element loads.
Also fix an awfull bug in simplified lowering.

TEST=cctest,mjsunit/asm
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 11:16:45 +00:00
titzer@chromium.org
015f963e8f Lower NumberMultiply, NumberDivide, and NumberModulus to Int32Mul, Int32[U]Div, and Int32[U]Mod when possible in simplified-lowering.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 10:53:46 +00:00
bmeurer@chromium.org
fd7fb06bf2 [turbofan] Fix typo in IA-32 code generator.
TEST=benchmarks/octane/zlib
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 10:44:45 +00:00
mvstanton@chromium.org
8faca47ef2 Updates to maintain flag --vector-ics
Experimental feature vector-ics needs some maintenance.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 09:15:09 +00:00
jochen@chromium.org
ba9bf72a2a Avoid unnecessary data race on FLAG_track_double_fields
BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 09:01:43 +00:00
jarin@chromium.org
bb5b39260b Relax representation requirement in FrameStates.
This change enables non-tagged representations in FrameStates.

That allows us to run zlib with deoptimization support and have almost the same performance of the generated code (as the code with no deoptimization). Unfortunately, the frame states seem to confuse typer. As a consequence, we generate more representation changes, which in turn causes the scheduler to take a lot more time and memory (>4x). The added compiler time makes zlib with deopt be about 50% slower.

BUG=
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 08:47:29 +00:00
jochen@chromium.org
73733bb3eb Fix data races and leaks related to v8::Lockers
BUG=v8:3618
R=ishell@chromium.org, svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 08:17:04 +00:00
bmeurer@chromium.org
db33f07f79 [turbofan] Reenable value numbering.
Value numbering is now limited to eliminatable operators (i.e. operators
that don't throw and don't write), and uses linear probing instead of
separate chaining.

TEST=unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 08:06:59 +00:00
bmeurer@chromium.org
8617b3acf8 [turbofan] Fix HashCode/Equals for floating point operators.
Those floating point constant operators require bitwise handling of
their parameters, otherwise 0.0 equals -0.0. This is solved in a
general way by adding new base::bit_equal_to and base::bit_hash
function objects.

TEST=unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 07:32:07 +00:00
weiliang.lin@intel.com
956591293c X87: Support for super keyed loads where key is a name.
port r24403.

original commit message:

  Support for super keyed loads where key is a name.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:21:42 +00:00
weiliang.lin@intel.com
5c0bd0cb00 X87: [turbofan] support all shift operands on ia32
port r24387.

original commit message:
  [turbofan] support all shift operands on ia32

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:13:22 +00:00
weiliang.lin@intel.com
8fdae69d9f X87: Replace OStream with std::ostream.
port r24319.

original commit message:

  Replace OStream with std::ostream.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:11:22 +00:00
weiliang.lin@intel.com
84bd2a5f72 X87: [turbofan] IA: Uint32ToFloat64 supports mem operand.
port r24318.

original commit message:
  [turbofan] IA: Uint32ToFloat64 supports mem operand.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:08:25 +00:00
arv@chromium.org
583868288a This uses a runtime function to set up the the constructor and its
prototype.

This does not add the methods/accessors to the prototype or the
constructor.

BUG=v8:3330
LOG=Y
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 16:24:59 +00:00
jochen@chromium.org
be69c78e6d Fix data race on Debug::thread_local_.current_debug_scope_
BUG=v8:3614
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 16:11:31 +00:00
jochen@chromium.org
7f61f657ce Fix data race on CpuProfiler::running_
BUG=v8:3613
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 14:45:17 +00:00
ishell@chromium.org
2c30ec5f65 Fix for assertion failures appeared after StoreTransitionStub implementation.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 14:32:19 +00:00
bmeurer@chromium.org
a17289f4bc [turbofan] Drop broken StaticParameterTraits.
The StaticParameterTraits are broken by design, and cause way too much
trouble. The compilers usually pick the wrong specialization (i.e. the
default specialization is picked for Load and Phi even tho there is a
specialization for MachineType), which is not only the reason why GVN is
ineffective and slow, but can also lead to correctness issues in some
rare cases.

Also clean up some minor bugs/inconsistencies on the way.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 13:30:28 +00:00
dslomov@chromium.org
5e21a9723b Add classes-related bailout reasons to DONT_TURBOFAN_NODE
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:35:06 +00:00
titzer@chromium.org
fabb14e87f Fix bugs in lowering NumberToInt32.
The backward propagation was different in the lowering phase versus the propagation phase, leading to some missing truncations.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:18:39 +00:00
svenpanne@chromium.org
f647ed7bfd Do not save/restore AST id generator.
AST ids only need to be unique, so there is no need to fiddle around with them.

R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:16:28 +00:00
yangguo@chromium.org
ec871585fc Add stack trace to the promise reject callback.
R=aandrey@chromium.org
BUG=chromium:393913
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 12:03:55 +00:00
jochen@chromium.org
ff51fa0691 Remove unnecessary isolate TLS from compiler jobs
BUG=none
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:54:18 +00:00
wingo@igalia.com
1888b8f10d Clean up manual bit field usage in PreParserExpression
Instead of using an integer value and manual bit-fiddling, use C++'s
support for specifying bit sizes for integral types. This way the bits
used to describe a PreParserExpression are handled by the compiler.

BUG=
LOG=
R=svenpanne@chromium.org

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

Patch from Adrian Perez <aperez@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:20:08 +00:00
svenpanne@chromium.org
ac1224eafd Fixed compilation with older clang versions.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 09:04:39 +00:00
bmeurer@chromium.org
0a6e406927 Further improve hashing of pointers and integers.
Also make sure that the appropriate functions are inlined properly
(using V8_INLINE instead of inline to enforce it even with GCC),
and improve the HashIsOkish unittest.

TEST=unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:39:19 +00:00
bmeurer@chromium.org
e3294b1f09 [turbofan] Fix lowering of typed loads/stores.
Only JSLoadProperty/JSStoreProperty nodes with external typed arrays can
be lowered to LoadElement/StoreElement, because lowering of non-external
typed arrays would require a map check.

TEST=cctest,unittests,mjsunit
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:36:21 +00:00
jochen@chromium.org
40a1f82238 Introduce --job-based-recompilation flag
The implementation is not yet complete, it doesn't support blocking yet,
and doesn't collect statistics.

This things will be fixed in follow-up CLs.

BUG=v8:3608
R=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:29:24 +00:00
erikcorry@chromium.org
d0dc7fc4da Reland: Add a use counter for Intl.v8BreakIterator
This relands https://codereview.chromium.org/619913002/
The test has been fixed to do a GC so it does not appear to leak in
ASAN.  In addition the test has been fixed to work in the no-i18n
build, by incorporating the change from https://codereview.chromium.org/631743002/
R=ishell@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:50:40 +00:00
balazs.kilvady@imgtec.com
041c80e774 MIPS: Support for super keyed loads where key is a name.
Port r24403 (891eb62)

BUG=v8:3330
LOG=N
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:48:56 +00:00
arv@chromium.org
6708f664a9 Stage ES6 numeric literals
BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:40:55 +00:00
bmeurer@chromium.org
03255440de Don't use identity as hash function for integers.
Also slightly improve hashing of floats/doubles.

TEST=unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:23:59 +00:00
dcarney@chromium.org
e7a635c853 [turbofan] fix vreg mapping for instruction selector tests
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 14:30:55 +00:00
jkummerow@chromium.org
b6f82c734c Remove FLAG_opt_safe_uint32_operations.
It has been turned on by default for a long time, and hydrogenized BinaryOpStubs actually depend on it being turned on.

BUG=v8:3487
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:15:23 +00:00
dcarney@chromium.org
eb00c5301a [turbofan] map vregs early
R=bmeurer@chromium.org, jarin@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:03:04 +00:00
svenpanne@chromium.org
0a95f8982c Squeeze the layout of variable proxy nodes.
Around 200MB less peak memory usage in the bug mentioned below.

BUG=417697
LOG=y
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:56:11 +00:00
bmeurer@chromium.org
9440b885ae Add C++11 compatible base::hash function object.
Implement NodeCache in terms of base::hash and std::equal_to in preparation
for HeapConstant caching.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:27:24 +00:00
rmcilroy@chromium.org
7cbe1ef9ca Add MonotonicallyIncreasingTime to V8 Platform.
Adds a MonotonicallyIncreasingTime() function to the Platform API to enable the
embedder to provide a time API to V8 which will be used for IdleNotification deadlines.

BUG=417668
LOG=Y
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:22:25 +00:00
ulan@chromium.org
de51833695 Fix representation of HLoadRoot.
HLoadRoot doesn't participate in representation inference, and its
represenation is not Tagged at code generation, which leads to incorrect
pointer map assignment and eventual stale pointer access after GC.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 11:42:13 +00:00
erikcorry@chromium.org
33da50f2ea Revert Add a use counter for Intl.v8BreakIterator https://codereview.chromium.org/619913002/
This is due to breakage on the ASAN memory leak bot, possibly due to
pre-existing leaks in v8BreakIterator().

R=ishell@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 11:14:50 +00:00
jochen@chromium.org
548428d955 Make V8 compile with Win64 dbg
BUG=chromium:420538
R=dcarney@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 10:46:15 +00:00
m.m.capewell@googlemail.com
b662e754ae [turbofan] Negated immediates for ARM64 add/sub
Add ARM64 instruction selector support for negating the sense of an arithmetic
instruction when its immediate is negative.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 10:39:23 +00:00
jarin@chromium.org
f40d582cf1 Revert "[turbofan] Fix lowering of typed loads/stores."
This reverts commit r24386 for tanking asm.js benchmarks.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:54:24 +00:00
svenpanne@chromium.org
f33d033725 Unbreak PNaCL build
Forgot to add a file...

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:26:29 +00:00
dslomov@chromium.org
da86ab5d23 Support for super keyed loads where key is a name.
R=arv@chromium.org, ishell@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:25:27 +00:00
svenpanne@chromium.org
955876b5f3 Use the pnacl-clang toolchain for (P)NaCL builds
Patch from JF Bastien <jfb@google.com>.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 08:10:50 +00:00
erikcorry@chromium.org
43257b61ae Add a use counter for Intl.v8BreakIterator
R=marja@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-03 10:29:12 +00:00
paul.lind@imgtec.com
f9b39f29fb MIPS: Add turbofan support for mips32.
BUG=
R=bmeurer@chromium.org, dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 15:48:48 +00:00
svenpanne@chromium.org
e2ed242385 Removed the Isolate* field from literal nodes.
Again 50MB less peak memory usage in the bug mentioned below...

BUG=417697
LOG=y
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 13:05:11 +00:00
dcarney@chromium.org
c9c4b931f0 fix imul(reg, op, imm) emission on x64
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 12:22:36 +00:00
yurys@chromium.org
08c40baa1f Revert of Extend CPU profiler with mapping ticks to source lines (patchset #3 id:40001 of https://codereview.chromium.org/616963005/)
Reason for revert:
It broke layout test fast/events/window-onerror-02.html, error column reported by window.onerror is now wrong (I believe it is because of the change in full-codegen):

http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/652

Original issue's description:
> Extend CPU profiler with mapping ticks to source lines
>
> The idea behind of this solution is to use the existing "relocation info" instead of consumption the CodeLinePosition events emitted by the V8 compilers.
> During generation code and relocation info are generated simultaneously.
> When code generation is done you each code object has associated "relocation info".
> Relocation information lets V8 to mark interesting places in the generated code: the pointers that might need to be relocated (after garbage collection),
> correspondences between the machine program counter and source locations for stack walking.
>
> This patch:
> 1. Add more source positions info in reloc info to make it suitable for source level mapping.
> The amount of data should not be increased dramatically because (1) V8 already marks interesting places in the generated code and
> (2) V8 does not write redundant information (it writes a pair (pc_offset, pos) only if pos is changed and skips other).
> I measured it on Octane benchmark - for unoptimized code the number of source positions may achieve 2x ('lin_solve' from NavierStokes benchmark).
>
> 2. When a sample happens, CPU profiler finds a code object by pc, then use its reloc info to match the sample to a source line.
> If a source line is found that hit counter is increased by one for this line.
>
> 3. Add a new public V8 API to get the hit source lines by CDT CPU profiler.
> Note that it's expected a minor patch in Blink to pack the source level info in JSON to be shown.
>
> 4.Add a test that checks how the samples are distributed through source lines.
> It tests two cases: (1) relocation info created during code generation and (2) relocation info associated with precompiled function's version.
>
> Patch from Denis Pravdin <denis.pravdin@intel.com>
> BUG=None
> LOG=Y
> R=svenpanne@chromium.org
>
> Committed: https://code.google.com/p/v8/source/detail?r=24389

TBR=svenpanne@chromium.org,danno@chromium.org,alph@chromium.org,denis.pravdin@intel.com,weiliang.lin@intel.com
BUG=None
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 11:58:21 +00:00
svenpanne@chromium.org
53454d95d0 Squeeze the layout of expression nodes a bit.
Again 112MB less peak memory usage in the bug mentioned below. :-)
Routed all writes to to_boolean_types_ through its setter on the way.

BUG=417697
LOG=y
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 11:52:54 +00:00
jkummerow@chromium.org
8d283eddc0 Drop some unused code
Bonus: fix bitrot in (disabled) Hydrogen-BCH

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 10:52:12 +00:00
yangguo@chromium.org
a2099f5292 Serialize all external strings except for native source code strings.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:39:13 +00:00
svenpanne@chromium.org
6e3b54ae36 Merged FeedbackSlotInterface into AstNode, removing the need for a 2nd vtable.
This tiny change shaves off 112MB from the peak memory usage in the
bug mentioned below, more to come...

BUG=417697
LOG=y
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:38:28 +00:00
yurys@chromium.org
6482fb3ee4 Extend CPU profiler with mapping ticks to source lines
The idea behind of this solution is to use the existing "relocation info" instead of consumption the CodeLinePosition events emitted by the V8 compilers.
During generation code and relocation info are generated simultaneously.
When code generation is done you each code object has associated "relocation info".
Relocation information lets V8 to mark interesting places in the generated code: the pointers that might need to be relocated (after garbage collection),
correspondences between the machine program counter and source locations for stack walking.

This patch:
1. Add more source positions info in reloc info to make it suitable for source level mapping.
The amount of data should not be increased dramatically because (1) V8 already marks interesting places in the generated code and
(2) V8 does not write redundant information (it writes a pair (pc_offset, pos) only if pos is changed and skips other).
I measured it on Octane benchmark - for unoptimized code the number of source positions may achieve 2x ('lin_solve' from NavierStokes benchmark).

2. When a sample happens, CPU profiler finds a code object by pc, then use its reloc info to match the sample to a source line.
If a source line is found that hit counter is increased by one for this line.

3. Add a new public V8 API to get the hit source lines by CDT CPU profiler.
Note that it's expected a minor patch in Blink to pack the source level info in JSON to be shown.

4.Add a test that checks how the samples are distributed through source lines.
It tests two cases: (1) relocation info created during code generation and (2) relocation info associated with precompiled function's version.

Patch from Denis Pravdin <denis.pravdin@intel.com>
BUG=None
LOG=Y
R=svenpanne@chromium.org

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

Patch from Denis Pravdin <denis.pravdin@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:20:37 +00:00
dcarney@chromium.org
944858e7d5 [turbofan] support all shift operands on x64
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:08:09 +00:00
dcarney@chromium.org
e9fcaa4be9 [turbofan] support all shift operands on ia32
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 09:04:04 +00:00
bmeurer@chromium.org
5899cc8ca7 [turbofan] Fix lowering of typed loads/stores.
We can only access to external typed arrays; lowering of internal
typed arrays would require a map check plus eager deoptimization.
Also embed the array buffer reference directly instead of embedding
the typed array.

TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:38:37 +00:00
jochen@chromium.org
d709e6aa13 Change minimum code range size to 3MB
There will be at least 2MB of guard pages around allocatable code memory

BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:28:29 +00:00
jochen@chromium.org
5f47fe15e2 Remove support for parallel sweeping
BUG=none
R=hpayer@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 08:24:48 +00:00
hpayer@chromium.org
2bfbe0d862 Fix Windows compile.
BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:42:11 +00:00
hpayer@chromium.org
ad6b41ffa7 Force scavenge in idle notification if we estimate that it will take long.
BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:21:53 +00:00
yangguo@chromium.org
43ddad10b3 Handle external strings in the code serializer.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:12:46 +00:00
yangguo@chromium.org
2134c5c0ba Fulfill some code serializer related TODOs.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 07:04:28 +00:00
yangguo@chromium.org
321dad9b8e Introduce v8::Object::GetIsolate().
API=v8::Object::GetIsolate()
LOG=Y
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 06:52:39 +00:00
marja@chromium.org
e1a5abb6c8 Debug a mystery crash bug in script streaming.
This adds a bunch of checks so we hopefully get more detailed information about
what exactly goes wrong.

R=jochen@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 16:54:42 +00:00
yangguo@chromium.org
b84614983f Attempt to fix GC mole failures.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 15:39:12 +00:00
mstarzinger@chromium.org
3bc3df9a27 Implement inlined stack-check guards in TurboFan.
R=bmeurer@chromium.org
TEST=cctest/test-run-stackcheck/TerminateAtMethodEntry

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 14:03:02 +00:00
jkummerow@chromium.org
1bb52d0da8 Fix Hydrogen's BuildStore()
BUG=chromium:417508
LOG=y
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 13:17:34 +00:00
svenpanne@chromium.org
d6eea5742d Endian changes, support 64bit big endian
These are some changes split off from https://codereview.chromium.org/422063005

frames-inl.h, frames.h
based on 05db7d2d71
On 64bit big endian systems, the integer value is in the second slot, thus we need a new offset.

objects-inl.h, objects.h
based on 09b680b2af
Similarly, the hash slot is an integer field and we need to do the right thing on 64bit big endian systems

objects.cc
based on: 065742b078
Prettier printing of constant pools

test-strings.cc
based on:  9889d60cd6
endian fixes

BUG=
R=svenpanne@chromium.org

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

Patch from Andrew Low <andrew_low@ca.ibm.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 13:14:14 +00:00
dslomov@chromium.org
bedfa9e710 Extract runtime functions for classes into a separate file.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 12:11:12 +00:00
yangguo@chromium.org
983205d5fd Reland "Use symbols instead of hidden properties for i18n markers."
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:53:29 +00:00
yangguo@chromium.org
67f43055d2 Fix data race when concurrent compilation is aborted due to dependency change.
R=marja@chromium.org
BUG=chromium:419189
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:41:19 +00:00
mvstanton@chromium.org
b8288c7535 Don't clear the string stub at gc time in KeyedLoadIC.
Clearing this stub doesn't actually make sense, as it neither leaks
memory, nor prevents finding a new optimum stable state. As
long as strings receivers are observed, this is the best stub.
The moment we see a non-string receiver we'll go polymorphic
or generic depending on the case.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:09:06 +00:00
bmeurer@chromium.org
b9afcdcefb [turbofan] Add control input to Load and LoadElements.
Also remove the now obsolete ControlEffect operator.

TEST=cctest,mjsunit,unittests
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:08:37 +00:00
mstarzinger@chromium.org
4f7eff0a21 Remove deprecated CEntryStub cache in generic lowering.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:54:51 +00:00
dcarney@chromium.org
b3d426889d [turbofan] intel lea add multiply matchers
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:47:14 +00:00
titzer@chromium.org
c1d79db81b Rename Int32{UMod,UDiv} to Uint32{Div,Mod} and Int64{UMod,UDiv} to Uint64{Div,Mod}.
R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:39:11 +00:00
jochen@chromium.org
ef54daf2cc Fix clang compilation
BUG=none
TBR=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:35:27 +00:00
jochen@chromium.org
5ed0f2cecc Reserve a page at the beginning of the code range on Win64 for SEH
BUG=v8:3597
R=svenpanne@chromium.org
LOG=n

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:16:57 +00:00
jochen@chromium.org
259126c0d9 Remove sweeper threads
Job based sweeping is enabled since 3.29, so remove the now obsolete
thread based implementation

BUG=none
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 09:16:28 +00:00
bmeurer@chromium.org
bfd37ab267 Move unit tests to test/unittests.
As per discussion on the V8 team, this is the place we want them to live,
not following the Chrome Style Guide for this.

BUG=v8:3489
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:34:25 +00:00
yangguo@chromium.org
cc6fe3a988 Fix ostream flushing.
TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:22:39 +00:00
mstarzinger@chromium.org
c3a2c5740e Add support for uint64 compares to TurboFan.
R=bmeurer@chromium.org, titzer@chromium.org
TEST=compiler-unittests/MachineOperatorTest

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:11:56 +00:00
bmeurer@chromium.org
67383fe700 [turbofan] Add BoundsCheckMode to ElementAccess.
This is currently only used for StoreElement. LoadElement will be
updated to make use of that in a follow-up CL (depends on additional
control input for loads first).

TEST=cctest,mjsunit
R=jarin@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:42:54 +00:00
yangguo@chromium.org
63851465f2 Revert "Use symbols instead of hidden properties for i18n markers."
This reverts r24345.

TBR=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:33:53 +00:00
yangguo@chromium.org
153ec0329e Use symbols instead of hidden properties for i18n markers.
Also refactor symbols in the root list.

R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:08:39 +00:00
svenpanne@chromium.org
356d668d8f Changes to ALLOW_UNUSED to match upcoming changes to the Chromium trunk:
* Eliminate usage of ALLOW_UNUSED to define COMPILE_ASSERT and just use
  static_assert() in all cases now that all platforms build with C++11.
* Convert remaining uses of ALLOW_UNUSED to ALLOW_UNUSED_TYPE to match how
  Chromium will be splitting this functionality.  (In Chromium we'll have both
  ALLOW_UNUSED_TYPE and ALLOW_UNUSED_LOCAL, which have different syntax to
  enable us to use these with MSVC.)

BUG=chromium:81439
TEST=none
LOG=y
R=svenpanne@chromium.org

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

Patch from Peter Kasting <pkasting@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 06:32:05 +00:00
paul.lind@imgtec.com
1659197f5d MIPS: Add cvt_d_s to disassembler.
BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 04:14:01 +00:00
dslomov@chromium.org
953af8bd9f Desugar 'super(..)' into 'super.constructor(...)'
R=arv@chromium.org, marja@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 18:12:22 +00:00
yangguo@chromium.org
21d8692c4f Remove stray edits in r24335.
TBR=aandrey@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:40:08 +00:00
yangguo@chromium.org
e68e62c891 Introduce PromiseRejectCallback.
R=aandrey@chromium.org, yurys@chromium.org, rossberg@chromium.org
API=v8::Isolate::SetPromiseRejectCallback, v8::Promise::HasHandler
LOG=Y
BUG=v8:3093

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:29:08 +00:00
yangguo@chromium.org
552a9c2447 Add a fast case for one-element arrays in ArrayJoin
This case handles all one-element arrays that were not handled by _FastOneByteArrayJoin

BUG=
R=yangguo@chromium.org

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

Patch from Fadi Meawad <fmeawad@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 15:07:21 +00:00
ishell@chromium.org
85d7140de0 Hydrogenize (and share) part of StoreTransition handler as a StoreTransitionStub and StoreField handler simplification.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 14:54:14 +00:00
balazs.kilvady@imgtec.com
95525a220b MIPS: Replace OStream with std::ostream.
Port r24319 (b4a085f)

BUG=
R=akos.palfi@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 14:37:59 +00:00
dslomov@chromium.org
b43ebcd800 Implement data property creation for assignments to super.x.
R=rossberg@chromium.org, arv@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 13:19:47 +00:00
bmeurer@chromium.org
bdc02f8a2e More follow-up fixes to r24322.
TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 12:49:25 +00:00
bmeurer@chromium.org
78e17cd6a2 Some follow-up fixes to r24322.
TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 12:33:36 +00:00
dcarney@chromium.org
d57e2222c3 [turbofan] instantiate and run InstructionSelectorMultTest for ia32
TBR=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 11:44:29 +00:00
dcarney@chromium.org
912cea172e [turbofan] ia32 lea multiplication matching
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 11:22:14 +00:00
yangguo@chromium.org
af635205ed Split yet more runtime functions into separate files.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:46:04 +00:00
bmeurer@chromium.org
c1ee6247ca [turbofan] Some javascript operators are globally shared singletons.
Also cleanup the interface, and make the parameter class/accessors
explicit to work-around the type-unsafety of OpParameter<T>.

TEST=compiler-unittests,cctest,mjsunit
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:42:44 +00:00
neis@chromium.org
40a968bec4 Temporarily remove unsound use of Maybe until we have a proper fix.
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:37:47 +00:00
neis@chromium.org
7045592947 Get rid of code duplication by computing int Lub using range Lub.
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:34:54 +00:00
bmeurer@chromium.org
3eebdc3264 Replace OStream with std::ostream.
Review URL: https://codereview.chromium.org/618643002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
dcarney@chromium.org
49ffb141d9 [turbofan] IA: Uint32ToFloat64 supports mem operand.
BUG=
R=dcarney@chromium.org

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:24:11 +00:00
dcarney@chromium.org
51a2f97d80 [turbofan] x64 lea multiplication matching
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 09:46:30 +00:00
dcarney@chromium.org
574378d91b fix nacl build after r24308
TBR=jarin@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 09:34:16 +00:00
jarin@chromium.org
6a07181cde Refactor BasicBlock to not use GenericNode.
To manage BasicBlock's predecessors and successors we now use plain
std::vector.

The change also moves bunch of method definitions from header files
to implementation files.

In zlib, the change brings 3x improvement in the scheduler's memory
consumption. The --turbo-stats flag says we go 169MB -> 55MB in
the scheduler, 383MB -> 268MB overall.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 08:23:20 +00:00
yangguo@chromium.org
381616fb70 Split even more runtime functions into separate files.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 08:23:02 +00:00
dcarney@chromium.org
f0daf267aa [turbofan] cleanup x64 code generator a little
R=bmeurer@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 07:28:58 +00:00
weiliang.lin@intel.com
7ead464238 X87: Support count operations on super named properties.
port r24290.

original commit message:

   Support count operations on super named properties.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 07:22:29 +00:00
jochen@chromium.org
8c41380688 Fast-forward version number on bleeding_edge to 3.30.0
BUG=none
LOG=n
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 07:13:55 +00:00
balazs.kilvady@imgtec.com
3aba080773 MIPS: Support count operations on super named properties.
Port r24290 (98dc7ec)

BUG=v8:3330
LOG=N
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 17:11:06 +00:00
balazs.kilvady@imgtec.com
7cdeb38e61 MIPS: Fix r24286 "ExtendStorageStub added, it is aimed for extending objects backing store when it runs out of space".
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 15:59:38 +00:00
dslomov@chromium.org
f08295753d Clean-up tests for super getters and setters
R=arv@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 15:17:03 +00:00
arv@chromium.org
a36dee4d14 ES6: Implement object literal property shorthand
This allows the following:

var x = 1;
var o = {x};

This is under the --harmony-object-literals flag.

BUG=v8:3584
LOG=y
R=marja@chromium.org, rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 14:15:48 +00:00
dslomov@chromium.org
ec209c7721 Support count operations on super named properties.
R=ishell@chromium.org
BUG=v8:3330
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:56:32 +00:00
jarin@chromium.org
5b742b356d Adding more missing deoptimization points in Turbofan.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:37:58 +00:00
rmcilroy@chromium.org
d5e33ac3c7 Enable out-of-line constant pool for Arm.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:23:27 +00:00
neis@chromium.org
f292c4f78e Take output type into account in JSTypedLowering reduction.
R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:15:41 +00:00
ishell@chromium.org
171e62e589 ExtendStorageStub added, it is aimed for extending objects backing store when it runs out of space.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:11:27 +00:00
alph@chromium.org
24d1ef4868 Initial implementation of GetStackSample sampling profiler API.
The patch is based on https://codereview.chromium.org/578163002/#ps20001
made by gholap@chromium.org

LOG=N
BUG=v8:3490
R=bmeurer@chromium.org, yurys@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 12:59:54 +00:00
balazs.kilvady@imgtec.com
38da3edf58 MIPS: Stores and compound assignments for named super properties.
Port r24268 (428e63d)

BUG=v8:3330
LOG=N
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 12:45:12 +00:00
jochen@chromium.org
9b32bb22c1 Add a getter for the address and size of the code range to the pulic API
Since the x64 backend currently doesn't emit ABI compliant code, it is
not possible to unwind the stack. During Win64 SEH this will cause the
exception handling to abort, and not even call the unhandled exception
handler. Embedders are advised to install a custom unwind callback using
RtlInstallFunctionTableCallback for the entire code range to catch
unwind attempts for exception handling.

BUG=v8:3598
R=svenpanne@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 12:17:31 +00:00
mstarzinger@chromium.org
b2aaac9404 Drop deprecated method for backing store from AccessBuilder.
R=bmeurer@chromium.org
TEST=cctest/test-simplified-lowering/RunLoadStoreArrayBuffer

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 11:35:01 +00:00
ishell@chromium.org
df2e4f8e9b Map::Hash() calculation made deterministic in predictable mode.
BUG=v8:3563
LOG=N
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 11:29:43 +00:00