Commit Graph

18858 Commits

Author SHA1 Message Date
weiliang.lin@intel.com
9b06bf6047 X87: Refactor bailout reasons and disable optimization in more cases.
port r24161.

original commit message:
  Refactor bailout reasons and disable optimization in more cases.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 15:29:00 +00:00
weiliang.lin@intel.com
8e6e09c169 X87: fixed branch distances.
port r24151.

original commit message:

  Forgot a few kNear occurences, only happens with --deopt-every-n-times.
  Death to manual jump distance calculation! :-P

BUG=
R=svenpanne@chromium.org

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 15:17:20 +00:00
m.m.capewell@googlemail.com
352733dca2 [turbofan] ARM64 support for inverted logical ops
Select ARM64 inverted rhs instructions (bic, orn, eon) for cases where the rhs
input is inverted (using e/xor), and add some tests for this. Also, rename xor
to eor in the ARM64 backend.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 14:55:50 +00:00
mstarzinger@chromium.org
ea97f413ee Extend JSBuiltinReducer to cover Math.fround as well.
R=bmeurer@chromium.org
TEST=compiler-unittests/JSBuiltinReducerTest.MathFround

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 14:55:13 +00:00
aandrey@chromium.org
4c327306ee Test case of V8 failing to step into in some cases.
BUG=289497, v8:2888
R=yangguo@chromium.org, yurys@chromium.org
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 14:52:13 +00:00
titzer@chromium.org
f445883b27 Fix bug in representation-change.h.
R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 13:55:29 +00:00
machenbach@chromium.org
68c405154b Whitespace change to test new chromium deps.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 13:43:00 +00:00
machenbach@chromium.org
0b22118a68 Whitespace change to test new chromium deps.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 13:17:12 +00:00
machenbach@chromium.org
cab6380412 Whitespace change to test new chromium deps.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 12:47:20 +00:00
titzer@chromium.org
8c0bbd1e8f Fix windows build.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 12:01:21 +00:00
titzer@chromium.org
9fb5f564a9 Add support for Float32 representation changes.
R=bmeurer@chromium.org
BUG=v8:3589
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 11:55:07 +00:00
bmeurer@chromium.org
50c466e883 [turbofan] Add backend support for float32.
LOG=n
BUG=v8:3589
TEST=compiler-unittests,cctest
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 11:08:35 +00:00
svenpanne@chromium.org
82e5de6bdd Make the detailed reason for deopts mandatory on all platforms.
Boring semi-mechanical stuff...

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 10:47:29 +00:00
mstarzinger@chromium.org
379040e276 Extend JSBuiltinReducer to cover Math.sqrt as well.
R=bmeurer@chromium.org
TEST=compiler-unittests/JSBuiltinReducerTest.MathSqrt

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 10:24:19 +00:00
Jacob.Bramley@arm.com
98277cfa98 [arm64] cleanup heap numbers detection
Make heap numbers detection more consistent on arm64.
All the tested benchmarks (octane2, kraken, sunspider, v8-v4 and lua) are unchanged (a57 and a53).

R=ulan@chromium.org, bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 10:22:11 +00:00
balazs.kilvady@imgtec.com
7301ee52f7 MIPS: Refactor bailout reasons and disable optimization in more cases.
Port r24161 (008f335)

BUG=
R=dusan.milosavljevic@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 10:17:24 +00:00
mvstanton@chromium.org
b0b59073ac Fix IC cache confusion on String.prototype.length
BUG=416416
LOG=N
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 09:33:04 +00:00
bmeurer@chromium.org
aeae854827 Fix windows build.
TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 09:32:28 +00:00
bmeurer@chromium.org
deaf463bf1 [turbofan] Add length operand to LoadElement and StoreElement.
This is preliminary work, required to properly support bounds checking for typed array loads/stores.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 09:28:56 +00:00
titzer@chromium.org
9e0801c306 Translate NumberDivide/NumberModulus operators to Int32Div, Int32Mod in representation-change.h.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 08:49:32 +00:00
yangguo@chromium.org
72dcfab2e0 Simplify stack trace getter wrt prototype chain walk.
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 08:39:04 +00:00
weiliang.lin@intel.com
ab04540061 X87: Made the detailed reason for deopts mandatory on x87. Unified and improved things.
port r24146.

original commit message:
   Made the detailed reason for deopts mandatory on ia32. Unified and improved things.

   The number of different detail strings has been reduced a bit without
   any loss of information. Furthermore, DoubleToI is a bit more
   informative now. Tiny reason fixes.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 08:33:39 +00:00
dslomov@chromium.org
7e21f85880 Change all V8 internal private symbols to be private own symbols.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 08:12:58 +00:00
neis@chromium.org
6fd04d829e Redesign of the internal type system.
Besides addressing a fundamental flaw, this significantly simplifies
several aspects of the system.  The downside is a loss of precision
and a loss of algebraic properties.

Range types are now fully implemented.

R=rossberg@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 07:33:51 +00:00
yangguo@chromium.org
43538e57a4 Refactor bailout reasons and disable optimization in more cases.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 07:08:27 +00:00
weiliang.lin@intel.com
efe4852d5d X87: Removed superfluous deopt for ROR on ia32.
port r24133.   On X87 this check should be unnecessary too.

original commit message:
    Removed superfluous deopt for ROR on ia32.

    We only synthesize a ROR when we have an expression with a toplevel
    '|', which returns a signed value by definition, so deopting on
    negative values is not needed. ia32 was the only platform where this
    was done, all other didn't have the check.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 02:37:53 +00:00
v8-autoroll@chromium.org
3e4a0bcbe1 [Auto-roll] Bump up version to 3.29.86.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 18:01:37 +00:00
machenbach@chromium.org
98e9e05092 Refactoring: Remove global configs in release scripts.
TBR=tandrii@chromium.org
TEST=script_test.py

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 14:41:36 +00:00
v8-autoroll@chromium.org
7aaa0ddadc [Auto-roll] Bump up version to 3.29.85.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 14:31:32 +00:00
yangguo@chromium.org
6393ea9e1a Preserve message when rethrowing exception
A new message was always generated if there is a the top-most verbose
TryCatch, even when rethrowing an exception from a TryCatch that is going
out of scope, and we already have a message.

BUG=v8:3583
LOG=Y
R=yangguo@chromium.org

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

Patch from Jens Widell <jl@opera.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 14:29:45 +00:00
svenpanne@chromium.org
262c98593f Fixed branch distances.
Forgot a few kNear occurences, only happens with --deopt-every-n-times.
Death to manual jump distance calculation! :-P

TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 14:06:54 +00:00
mstarzinger@chromium.org
3a7cd5d273 Fix Makefile regeneration for compiler-unittests.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 11:44:31 +00:00
mstarzinger@chromium.org
e4da4dbf23 Move test for reduction of Math.max to unittest.
R=bmeurer@chromium.org
TEST=compiler-unittests/JSBuiltinReducerTest.MathMax

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 11:40:00 +00:00
svenpanne@chromium.org
b364a97e54 Made the detailed reason for deopts mandatory on ia32. Unified and improved things.
The number of different detail strings has been reduced a bit without
any loss of information. Furthermore, DoubleToI is a bit more
informative now. Tiny reason fixes.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 11:38:12 +00:00
jochen@chromium.org
a83f0fffde Remove temporary work-around for PDFium
BUG=none
R=bmeurer@chromium.org, svenpanne@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 11:32:41 +00:00
mstarzinger@chromium.org
5304f5e719 Move test for reduction of Math.imul to unittest.
R=bmeurer@chromium.org
TEST=compiler-unittests/JSBuiltinReducerTest.MathImul

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 11:26:49 +00:00
machenbach@chromium.org
a77dfb1ac6 Refactoring: Remove more legacy from release scripts.
- Remove an unused feature that allowed to check for required
  data before each script step.
- Use a relative path to the version file. In the production
  environment, this will point to the cwd/version_file, while
  in the test environment it is fake_cwd/version_file.

TBR=tandrii@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 09:35:49 +00:00
jkummerow@chromium.org
9583236d84 Fix method dispatch in Keyed/StoreIC, and JumpIfNotUniqueName usage
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 09:20:36 +00:00
jarin@chromium.org
9ef343c18d [Turbofan] Insert nops for lazy bailout patching, fix translation of literals.
The code for EnsureSpaceForLazyDeopt is taken from lithium-codegen-*.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 08:46:18 +00:00
mstarzinger@chromium.org
0a4e98ba43 Extend JSBuiltinReducer to cover Math.max as well.
R=svenpanne@chromium.org
TEST=cctest/test-js-typed-lowering/BuiltinMathMax

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 08:16:54 +00:00
jochen@chromium.org
24aead2a5a Add a PRESUBMIT check that production code does not call test code
This is based on a regular expression matching anything in a namespace
ending in test, or a method containing the words ForTest, ForTesting,
for_test, or for_testing.

It is possible to blacklist entire directories or individual files.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 08:14:06 +00:00
svenpanne@chromium.org
363b0e2fd2 Removed superfluous deopt for ROR on ia32.
We only synthesize a ROR when we have an expression with a toplevel
'|', which returns a signed value by definition, so deopting on
negative values is not needed. ia32 was the only platform where this
was done, all other didn't have the check.

R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 08:06:00 +00:00
bmeurer@chromium.org
54ceb48005 Forcibly inline bit_cast when building with GCC.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 06:30:15 +00:00
weiliang.lin@intel.com
803761a9f9 X87: Further improve deopt reason output
port r24123.  R24123 does not cover all required code change in X87.

original commit message:
   Further improve deopt reason output.
   * Make the detailed deopt reason mandatory on x64, other platforms will
     follow in separate CLs.

   * Extracted and improved jump table entry sharing logic: When --trace-deopt
     is on, we get separate entries for different deopt reasons. This enables
     us to distinguish the several reasons single instructions can have.

   * Don't emit superfluous jump table comments: The bailout ID is still visible,
     and the jump table entry number is not interesting (but easy to determine
     if really needed).

   * Unify the internal name of the jump table member across platforms.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 03:55:35 +00:00
weiliang.lin@intel.com
f24bfa435c X87: Make KeyedLoads from a sloppy arguments array use a handler.
port r24120.

original commit message:
   Make KeyedLoads from a sloppy arguments array use a handler.
   Before, a custom stub was installed

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 03:44:35 +00:00
vogelheim@chromium.org
2bf7ad0541 Add histogram timers for (de-)serialization during compilation.
R=yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 17:19:19 +00:00
balazs.kilvady@imgtec.com
ddb2d26686 MIPS: Make KeyedLoads from a sloppy arguments array use a handler.
Port r24120 (eed5963)

Original commit message:
Before, a custom stub was installed.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 16:08:49 +00:00
verwaest@chromium.org
83f64e8c1f Fix escaped index JSON parsing
BUG=416449
LOG=y
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 15:21:19 +00:00
yurys@chromium.org
269c46ee80 Simplify synthetic roots creation in heap snapshot
The synthetic roots exist in every snapshot and there are no actual objects corresponding to them (there was attempt to create some virtual objects to reuse existing snapshot builder but it just complicated the things).

Previously synthetic root wouldn't have been added if it was empty. Current implementation always adds all synthetic roots in the snapshot no matter if they are empty or not.

BUG=None
LOG=N
R=alph@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 14:40:59 +00:00
svenpanne@chromium.org
7384467552 Further improve deopt reason output.
* Make the detailed deopt reason mandatory on x64, other platforms
  will follow in separate CLs.

* Extracted and improved jump table entry sharing logic: When
  --trace-deopt is on, we get separate entries for different deopt
  reasons. This enables us to distinguish the several reasons single
  instructions can have.

* Don't emit superfluous jump table comments: The bailout ID is still
  visible, and the jump table entry number is not interesting (but
  easy to determine if really needed).

* Unify the internal name of the jump table member across platforms.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 14:16:38 +00:00