platform/upstream/v8.git
10 years ago[ia32] Better code generation for materialization of float/double constants.
bmeurer@chromium.org [Thu, 9 Oct 2014 09:32:59 +0000 (09:32 +0000)]
[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

10 years agoIntroduce a tsan suppressions file
jochen@chromium.org [Thu, 9 Oct 2014 09:32:04 +0000 (09:32 +0000)]
Introduce a tsan suppressions file

Also suppress a deliberate lock cycle in test-lockers

BUG=none
R=glider@chromium.org, machenbach@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoStore local copies of flags needed on the background thread
jochen@chromium.org [Thu, 9 Oct 2014 09:21:46 +0000 (09:21 +0000)]
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

10 years ago[turbofan] Add support for ARM64 Ubfx
bmeurer@chromium.org [Thu, 9 Oct 2014 09:18:31 +0000 (09:18 +0000)]
[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

10 years agoSimplify AST ID generation.
svenpanne@chromium.org [Thu, 9 Oct 2014 08:16:13 +0000 (08:16 +0000)]
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

10 years agoMake Profiler::running_ atomic.
jochen@chromium.org [Thu, 9 Oct 2014 07:51:35 +0000 (07:51 +0000)]
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

10 years agoX87: Updates to maintain flag --vector-ics
weiliang.lin@intel.com [Thu, 9 Oct 2014 07:05:20 +0000 (07:05 +0000)]
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

10 years agoFix tools/run-llprof.sh to work with newer perf.
bmeurer@chromium.org [Thu, 9 Oct 2014 06:01:41 +0000 (06:01 +0000)]
Fix tools/run-llprof.sh to work with newer perf.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS64: Fix TruncatingDiv.
akos.palfi@imgtec.com [Wed, 8 Oct 2014 16:15:28 +0000 (16:15 +0000)]
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

10 years agoSmarter representation selection for phis.
titzer@chromium.org [Wed, 8 Oct 2014 16:01:18 +0000 (16:01 +0000)]
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

10 years agoUpdate unicode to 7.0.0.
yangguo@chromium.org [Wed, 8 Oct 2014 14:55:03 +0000 (14:55 +0000)]
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

10 years agoClasses: Add support for toString
arv@chromium.org [Wed, 8 Oct 2014 14:48:48 +0000 (14:48 +0000)]
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

10 years agoRemove premordial math functions from native context.
mstarzinger@chromium.org [Wed, 8 Oct 2014 14:42:31 +0000 (14:42 +0000)]
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

10 years agoResolve race between starting the profiler thread and the logging timer
jochen@chromium.org [Wed, 8 Oct 2014 14:08:12 +0000 (14:08 +0000)]
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

10 years agoAdd test for tag pushing in push-to-trunk script.
machenbach@chromium.org [Wed, 8 Oct 2014 13:36:27 +0000 (13:36 +0000)]
Add test for tag pushing in push-to-trunk script.

BUG=chromium:410721
LOG=n
TEST=script_test.py
TBR=tandrii@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoMIPS: Updates to maintain flag --vector-ics
balazs.kilvady@imgtec.com [Wed, 8 Oct 2014 11:55:24 +0000 (11:55 +0000)]
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

10 years agoGet rid of isolate state.
jochen@chromium.org [Wed, 8 Oct 2014 11:51:57 +0000 (11:51 +0000)]
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

10 years agoMake Profiler::tail_ atomic
jochen@chromium.org [Wed, 8 Oct 2014 11:33:31 +0000 (11:33 +0000)]
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

10 years agoMove fdlibm in src/third_party.
ulan@chromium.org [Wed, 8 Oct 2014 11:19:51 +0000 (11:19 +0000)]
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

10 years ago[turbofan] Properly emit bounds checks for typed array element loads.
bmeurer@chromium.org [Wed, 8 Oct 2014 11:16:45 +0000 (11:16 +0000)]
[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

10 years agoLower NumberMultiply, NumberDivide, and NumberModulus to Int32Mul, Int32[U]Div, and...
titzer@chromium.org [Wed, 8 Oct 2014 10:53:46 +0000 (10:53 +0000)]
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

10 years ago[turbofan] Fix typo in IA-32 code generator.
bmeurer@chromium.org [Wed, 8 Oct 2014 10:44:45 +0000 (10:44 +0000)]
[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

10 years agoCcTest::isolate_used_ is used from multiple threads, make it atomic
jochen@chromium.org [Wed, 8 Oct 2014 09:34:40 +0000 (09:34 +0000)]
CcTest::isolate_used_ is used from multiple threads, make it atomic

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoThe empty husk of a JSFunction is useful to us.
titzer@chromium.org [Wed, 8 Oct 2014 09:23:33 +0000 (09:23 +0000)]
The empty husk of a JSFunction is useful to us.

We hollow out the rotting core and with evil intent repurpose its dry carcass to empower ourselves; with such a shell we can test.

R=mstarzinger@chromium.org

BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUpdates to maintain flag --vector-ics
mvstanton@chromium.org [Wed, 8 Oct 2014 09:15:09 +0000 (09:15 +0000)]
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

10 years agoDon't enable WPO on Win64 and require Server 2003 / x64 for win64
jochen@chromium.org [Wed, 8 Oct 2014 09:09:57 +0000 (09:09 +0000)]
Don't enable WPO on Win64 and require Server 2003 / x64 for win64

WPO was only enabled to work around an issue with the Isolate's static
initializer which no longer exists.

Requiring XP on Win64 doesn't make sense.

BUG=421363
R=machenbach@chromium.org
LOG=y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAvoid unnecessary data race on FLAG_track_double_fields
jochen@chromium.org [Wed, 8 Oct 2014 09:01:43 +0000 (09:01 +0000)]
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

10 years agoFix race in debugger threads in cctest/test-debug
jochen@chromium.org [Wed, 8 Oct 2014 08:56:57 +0000 (08:56 +0000)]
Fix race in debugger threads in cctest/test-debug

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRelax representation requirement in FrameStates.
jarin@chromium.org [Wed, 8 Oct 2014 08:47:29 +0000 (08:47 +0000)]
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

10 years agoFix data races and leaks related to v8::Lockers
jochen@chromium.org [Wed, 8 Oct 2014 08:17:04 +0000 (08:17 +0000)]
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

10 years ago[turbofan] Reenable value numbering.
bmeurer@chromium.org [Wed, 8 Oct 2014 08:06:59 +0000 (08:06 +0000)]
[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

10 years agoFix data race in cctest/test-api/RegExpInterruption
jochen@chromium.org [Wed, 8 Oct 2014 07:41:28 +0000 (07:41 +0000)]
Fix data race in cctest/test-api/RegExpInterruption

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] Fix HashCode/Equals for floating point operators.
bmeurer@chromium.org [Wed, 8 Oct 2014 07:32:07 +0000 (07:32 +0000)]
[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

10 years agoX87: Support for super keyed loads where key is a name.
weiliang.lin@intel.com [Wed, 8 Oct 2014 06:21:42 +0000 (06:21 +0000)]
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

10 years agoX87: [turbofan] support all shift operands on ia32
weiliang.lin@intel.com [Wed, 8 Oct 2014 06:13:22 +0000 (06:13 +0000)]
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

10 years agoX87: Replace OStream with std::ostream.
weiliang.lin@intel.com [Wed, 8 Oct 2014 06:11:22 +0000 (06:11 +0000)]
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

10 years agoX87: [turbofan] IA: Uint32ToFloat64 supports mem operand.
weiliang.lin@intel.com [Wed, 8 Oct 2014 06:08:25 +0000 (06:08 +0000)]
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

10 years agoAdd test case demonstrating bug in SparseReverse when combined with getters/setters
adamk@chromium.org [Tue, 7 Oct 2014 19:22:44 +0000 (19:22 +0000)]
Add test case demonstrating bug in SparseReverse when combined with getters/setters

BUG=v8:3612
LOG=N
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoThis uses a runtime function to set up the the constructor and its
arv@chromium.org [Tue, 7 Oct 2014 16:24:59 +0000 (16:24 +0000)]
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

10 years agoFix data race on Debug::thread_local_.current_debug_scope_
jochen@chromium.org [Tue, 7 Oct 2014 16:11:31 +0000 (16:11 +0000)]
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

10 years agoFix compilation on win64
jochen@chromium.org [Tue, 7 Oct 2014 16:00:44 +0000 (16:00 +0000)]
Fix compilation on win64

TBR=bmeurer@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix data race on CpuProfiler::running_
jochen@chromium.org [Tue, 7 Oct 2014 14:45:17 +0000 (14:45 +0000)]
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

10 years agoFix for assertion failures appeared after StoreTransitionStub implementation.
ishell@chromium.org [Tue, 7 Oct 2014 14:32:19 +0000 (14:32 +0000)]
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

10 years ago[turbofan] Drop broken StaticParameterTraits.
bmeurer@chromium.org [Tue, 7 Oct 2014 13:30:28 +0000 (13:30 +0000)]
[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

10 years agoRemove PersistentBase::ClearAndLeak
jochen@chromium.org [Tue, 7 Oct 2014 12:37:27 +0000 (12:37 +0000)]
Remove PersistentBase::ClearAndLeak

Embedders that used this method to be able to store a Persistent in a
container should use one of the containers in v8-util.h instead.

Other uses are no longer supported.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd classes-related bailout reasons to DONT_TURBOFAN_NODE
dslomov@chromium.org [Tue, 7 Oct 2014 12:35:06 +0000 (12:35 +0000)]
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

10 years agoFix bugs in lowering NumberToInt32.
titzer@chromium.org [Tue, 7 Oct 2014 12:18:39 +0000 (12:18 +0000)]
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

10 years agoDo not save/restore AST id generator.
svenpanne@chromium.org [Tue, 7 Oct 2014 12:16:28 +0000 (12:16 +0000)]
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

10 years agoAdd stack trace to the promise reject callback.
yangguo@chromium.org [Tue, 7 Oct 2014 12:03:55 +0000 (12:03 +0000)]
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

10 years agoAdd tag write access to merge script.
machenbach@chromium.org [Tue, 7 Oct 2014 10:46:04 +0000 (10:46 +0000)]
Add tag write access to merge script.

The script will poll the remote branch until the git updater
has replicated the commit to tag. The tag will then be
directly pushed to git.

BUG=chromium:410721
LOG=n
TEST=script_test.py
R=agable@chromium.org, tandrii@chromium.org
TBR=tandrii@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove unnecessary isolate TLS from compiler jobs
jochen@chromium.org [Tue, 7 Oct 2014 09:54:18 +0000 (09:54 +0000)]
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

10 years agoClean up manual bit field usage in PreParserExpression
wingo@igalia.com [Tue, 7 Oct 2014 09:20:08 +0000 (09:20 +0000)]
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

10 years agoFixed compilation with older clang versions.
svenpanne@chromium.org [Tue, 7 Oct 2014 09:04:39 +0000 (09:04 +0000)]
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

10 years agoFurther improve hashing of pointers and integers.
bmeurer@chromium.org [Tue, 7 Oct 2014 07:39:19 +0000 (07:39 +0000)]
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

10 years ago[turbofan] Fix lowering of typed loads/stores.
bmeurer@chromium.org [Tue, 7 Oct 2014 07:36:21 +0000 (07:36 +0000)]
[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

10 years agoIntroduce --job-based-recompilation flag
jochen@chromium.org [Tue, 7 Oct 2014 07:29:24 +0000 (07:29 +0000)]
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

10 years agoRemove extraneous line from CompareWrapper test
titzer@chromium.org [Mon, 6 Oct 2014 16:26:25 +0000 (16:26 +0000)]
Remove extraneous line from CompareWrapper test

On platforms without TurboFan (PowerPC) the CompareWrapper test was
failing. It appears the line

RawMachineAssemblerTester<int32_t> m;

was causing the issue, and does not appear to be required for the
test to operate correctly. Removing it resolves the crash on non
TurboFan platforms

BUG=
R=titzer@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoReland: Add a use counter for Intl.v8BreakIterator
erikcorry@chromium.org [Mon, 6 Oct 2014 15:50:40 +0000 (15:50 +0000)]
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

10 years agoMIPS: Support for super keyed loads where key is a name.
balazs.kilvady@imgtec.com [Mon, 6 Oct 2014 15:48:56 +0000 (15:48 +0000)]
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

10 years agoStage ES6 numeric literals
arv@chromium.org [Mon, 6 Oct 2014 15:40:55 +0000 (15:40 +0000)]
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

10 years agoDon't use identity as hash function for integers.
bmeurer@chromium.org [Mon, 6 Oct 2014 15:23:59 +0000 (15:23 +0000)]
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

10 years agoMake asan and lsan make flags work like on the bots.
machenbach@chromium.org [Mon, 6 Oct 2014 15:21:37 +0000 (15:21 +0000)]
Make asan and lsan make flags work like on the bots.

BUG=
R=ishell@chromium.org, jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years ago[turbofan] fix vreg mapping for instruction selector tests
dcarney@chromium.org [Mon, 6 Oct 2014 14:30:55 +0000 (14:30 +0000)]
[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

10 years agoRemove FLAG_opt_safe_uint32_operations.
jkummerow@chromium.org [Mon, 6 Oct 2014 13:15:23 +0000 (13:15 +0000)]
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

10 years ago[turbofan] map vregs early
dcarney@chromium.org [Mon, 6 Oct 2014 13:03:04 +0000 (13:03 +0000)]
[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

10 years agoSqueeze the layout of variable proxy nodes.
svenpanne@chromium.org [Mon, 6 Oct 2014 12:56:11 +0000 (12:56 +0000)]
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

10 years agoAdd C++11 compatible base::hash function object.
bmeurer@chromium.org [Mon, 6 Oct 2014 12:27:24 +0000 (12:27 +0000)]
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

10 years agoAdd MonotonicallyIncreasingTime to V8 Platform.
rmcilroy@chromium.org [Mon, 6 Oct 2014 12:22:25 +0000 (12:22 +0000)]
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

10 years agoFix representation of HLoadRoot.
ulan@chromium.org [Mon, 6 Oct 2014 11:42:13 +0000 (11:42 +0000)]
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

10 years agoRevert Add a use counter for Intl.v8BreakIterator https://codereview.chromium.org...
erikcorry@chromium.org [Mon, 6 Oct 2014 11:14:50 +0000 (11:14 +0000)]
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

10 years agoMake V8 compile with Win64 dbg
jochen@chromium.org [Mon, 6 Oct 2014 10:46:15 +0000 (10:46 +0000)]
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

10 years ago[turbofan] Negated immediates for ARM64 add/sub
m.m.capewell@googlemail.com [Mon, 6 Oct 2014 10:39:23 +0000 (10:39 +0000)]
[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

10 years agoRevert "[turbofan] Fix lowering of typed loads/stores."
jarin@chromium.org [Mon, 6 Oct 2014 08:54:24 +0000 (08:54 +0000)]
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

10 years agoTest C++11 features on *all* platforms.
svenpanne@chromium.org [Mon, 6 Oct 2014 08:53:48 +0000 (08:53 +0000)]
Test C++11 features on *all* platforms.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoUnbreak PNaCL build
svenpanne@chromium.org [Mon, 6 Oct 2014 08:26:29 +0000 (08:26 +0000)]
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

10 years agoSupport for super keyed loads where key is a name.
dslomov@chromium.org [Mon, 6 Oct 2014 08:25:27 +0000 (08:25 +0000)]
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

10 years agoUse the pnacl-clang toolchain for (P)NaCL builds
svenpanne@chromium.org [Mon, 6 Oct 2014 08:10:50 +0000 (08:10 +0000)]
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

10 years agoExtend snapshot creation to generate 4-byte values
yangguo@chromium.org [Sat, 4 Oct 2014 10:30:24 +0000 (10:30 +0000)]
Extend snapshot creation to generate 4-byte values

R=rmcilroy@chromium.org, yangguo@chromium.org

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

Patch from Andre Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoAdd a use counter for Intl.v8BreakIterator
erikcorry@chromium.org [Fri, 3 Oct 2014 10:29:12 +0000 (10:29 +0000)]
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

10 years agoMIPS: Add turbofan support for mips32.
paul.lind@imgtec.com [Thu, 2 Oct 2014 15:48:48 +0000 (15:48 +0000)]
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

10 years agoRemoved the Isolate* field from literal nodes.
svenpanne@chromium.org [Thu, 2 Oct 2014 13:05:11 +0000 (13:05 +0000)]
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

10 years agofix imul(reg, op, imm) emission on x64
dcarney@chromium.org [Thu, 2 Oct 2014 12:22:36 +0000 (12:22 +0000)]
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

10 years agoRevert of Extend CPU profiler with mapping ticks to source lines (patchset #3 id...
yurys@chromium.org [Thu, 2 Oct 2014 11:58:21 +0000 (11:58 +0000)]
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

10 years agoSqueeze the layout of expression nodes a bit.
svenpanne@chromium.org [Thu, 2 Oct 2014 11:52:54 +0000 (11:52 +0000)]
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

10 years agoDrop some unused code
jkummerow@chromium.org [Thu, 2 Oct 2014 10:52:12 +0000 (10:52 +0000)]
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

10 years agoSerialize all external strings except for native source code strings.
yangguo@chromium.org [Thu, 2 Oct 2014 09:39:13 +0000 (09:39 +0000)]
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

10 years agoMerged FeedbackSlotInterface into AstNode, removing the need for a 2nd vtable.
svenpanne@chromium.org [Thu, 2 Oct 2014 09:38:28 +0000 (09:38 +0000)]
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

10 years agoExtend CPU profiler with mapping ticks to source lines
yurys@chromium.org [Thu, 2 Oct 2014 09:20:37 +0000 (09:20 +0000)]
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

10 years ago[turbofan] support all shift operands on x64
dcarney@chromium.org [Thu, 2 Oct 2014 09:08:09 +0000 (09:08 +0000)]
[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

10 years ago[turbofan] support all shift operands on ia32
dcarney@chromium.org [Thu, 2 Oct 2014 09:04:04 +0000 (09:04 +0000)]
[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

10 years ago[turbofan] Fix lowering of typed loads/stores.
bmeurer@chromium.org [Thu, 2 Oct 2014 08:38:37 +0000 (08:38 +0000)]
[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

10 years agoSkip test on all architectures but arm.
machenbach@chromium.org [Thu, 2 Oct 2014 08:37:51 +0000 (08:37 +0000)]
Skip test on all architectures but arm.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoChange minimum code range size to 3MB
jochen@chromium.org [Thu, 2 Oct 2014 08:28:29 +0000 (08:28 +0000)]
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

10 years agoUpdate the documentation of Isolate::GetCodeRange
jochen@chromium.org [Thu, 2 Oct 2014 08:28:04 +0000 (08:28 +0000)]
Update the documentation of Isolate::GetCodeRange

On Win64, the first page is reserved for the embedder.

BUG=v8:3597
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoRemove support for parallel sweeping
jochen@chromium.org [Thu, 2 Oct 2014 08:24:48 +0000 (08:24 +0000)]
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

10 years agoFix name clashes in cctests.
yangguo@chromium.org [Thu, 2 Oct 2014 08:18:03 +0000 (08:18 +0000)]
Fix name clashes in cctests.

R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

10 years agoFix Windows compile.
hpayer@chromium.org [Thu, 2 Oct 2014 07:42:11 +0000 (07:42 +0000)]
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

10 years agoForce scavenge in idle notification if we estimate that it will take long.
hpayer@chromium.org [Thu, 2 Oct 2014 07:21:53 +0000 (07:21 +0000)]
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

10 years agoHandle external strings in the code serializer.
yangguo@chromium.org [Thu, 2 Oct 2014 07:12:46 +0000 (07:12 +0000)]
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

10 years agoFulfill some code serializer related TODOs.
yangguo@chromium.org [Thu, 2 Oct 2014 07:04:28 +0000 (07:04 +0000)]
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