Commit Graph

21835 Commits

Author SHA1 Message Date
balazs.kilvady
86a6b6ff91 MIPS: [turbofan] Turn Math.clz32 into an inlinable builtin.
Port 3aa206b865

BUG=v8:3952
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27343}
2015-03-20 14:05:36 +00:00
chunyang.dai
f395ccd6db X87: [turbofan] Implement throwing exceptions into TurboFan code.
port 1382879f29 (r27016).

oringinal commit message:

    [turbofan] Implement throwing exceptions into TurboFan code.

    This extends the stack unwinding logic to respect optimized frames
    and perform a lookup in the handler table to find handlers. It also
    contains fixes to the API call stubs to allow a stack walk while
    promoting scheduled exceptions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27342}
2015-03-20 13:45:08 +00:00
bmeurer
ff89876bb9 [turbofan] Fix lowering of Math.max for integral inputs.
R=jarin@chromium.org
BUG=chromium:468162
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27341}
2015-03-20 12:05:19 +00:00
yangguo
2a440ef46a Serializer: cache hashmaps on the isolate.
This speeds up multiple uses of the serializer quite a bit.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27340}
2015-03-20 11:17:20 +00:00
rossberg
d0e20d8221 [harmony] Move some regression tests to the right place
TBR=dslomov@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27339}
2015-03-20 11:03:14 +00:00
rossberg
490378ba15 [strong] Less pleading error messages
R=dslomov@chromium.org
BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27338}
2015-03-20 10:50:24 +00:00
dslomov
af04fdfec8 Remove harmony-strings flag.
String functions are shipping since 4.1/Chrome M41, it is time to unflag.

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

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

Cr-Commit-Position: refs/heads/master@{#27337}
2015-03-20 10:43:38 +00:00
bmeurer
3072ac5349 [turbofan] More inlinable Math builtins.
Turn Math.acos, Math.asin, Math.atan, Math.atan2, Math.sign and Math.trunc
into inlinable builtins.

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

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

Cr-Commit-Position: refs/heads/master@{#27336}
2015-03-20 10:23:47 +00:00
jochen
877c99f781 Don't DCHECK that the weak closure wasn't yet overapproximated
Maybe it was overapproximated via the idle notification already, so just
don't retry in that case

BUG=chromium:469023
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27335}
2015-03-20 10:17:37 +00:00
ulan
16ff37db4a Check for GC interrupt in JSON parser.
BUG=v8:3974
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#27334}
2015-03-20 09:52:25 +00:00
bmeurer
d5893cad6b [turbofan] Work-around untagged result of CompareIC in pointer maps.
BUG=chromium:469089
LOG=n
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27333}
2015-03-20 09:45:12 +00:00
chunyang.dai
386dee8552 X87: Fix exception for assignment to uninitialised const.
port 2ecdf736cf (r27014).

original commit message:

  Fix exception for assignment to uninitialised const.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27332}
2015-03-20 09:35:49 +00:00
jarin
adb8867337 [turbofan] Add explicit set for nodes with weakened types.
To ensure termination, we need to be sure that once we start weakening
a node, we keep weakening that node in subsequent re-typings. Until now,
we were guessing that we previously weakened from the type. This
change introduces a set of nodes that have already be weakened, so
that we have a reliable way to detect previous weakening.

BUG=chromium:468799
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27331}
2015-03-20 09:12:59 +00:00
Benedikt Meurer
b99f17a26f [turbofan] Improve typing for string::length property.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27330}
2015-03-20 08:40:45 +00:00
Benedikt Meurer
3aa206b865 [turbofan] Turn Math.clz32 into an inlinable builtin.
R=dcarney@chromium.org, yangguo@chromium.org
BUG=v8:3952
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27329}
2015-03-20 08:37:34 +00:00
Benedikt Meurer
c16b91e84a [turbofan] Fix unit test coverage for JSIntrinsicLowering.
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27328}
2015-03-20 08:26:56 +00:00
v8-autoroll
c594995dda Update V8 DEPS.
Rolling v8/third_party/icu to d319ad9e25e8045f051dcd30bd5835f99936af6c

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27327}
2015-03-20 03:35:01 +00:00
akos.palfi
05fcaa37cc MIPS: [es6] implement Reflect.apply() & Reflect.construct()
Port d21fd15467

Known issue: the mjsunit/harmony/reflect-construct test fails, it will be addressed in a follow-up CL.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27326}
2015-03-20 00:34:45 +00:00
aperez
3c3ce1bca8 Parser: Fix crash on stack overflow when lazy-parsing arrow functions
The problem manifests itself when parsing manages to return something
meaningful in the presence of a stack overflow. This happens because
calling ParserBase::Next() will still return one valid token on stack
overflow, before starting to return invalid tokens.

Take the following input as example:

        a.map(v => v + 1);
              | |
       already   next token
        parsed   (which will be an invalid token
  (identifier)   because of a stack overflow)

The "v" may have been already parsed into a VariableProxy, then if a
stack overflow occurs, next token will be an invalid token (instead
of Token::ARROW), but the parser will return the VariableProxy.

This always happens when lazy-parsing arrow functions, so the position
in the input stream where the the arrow function code ends is known.
This fix adds a check that ensures that parsing ended at the end
position of the arrow function.

BUG=465671
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27325}
2015-03-20 00:17:50 +00:00
verwaest
bac0853dfb Cannot use Handle<T>::cast in Unique<T>::cast since it will try to do a T::cast (and its typecheck) concurrently, which is unsafe concurrently on moving values
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27324}
2015-03-19 23:54:15 +00:00
hpayer
cbfcee5575 Revert "Merge old data and pointer space."
TBR=verwaest@chromium.org,ulan@chromium.org,ishell@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#27323}
2015-03-19 22:03:32 +00:00
ulan
3a79259c0d [turbofan] Emit constant pool before blocking it in AssembleArchTableSwitch.
BUG=chromium:468749
LOG=NO
TEST=Emscripten/NBodyJava

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

Cr-Commit-Position: refs/heads/master@{#27322}
2015-03-19 19:42:23 +00:00
hpayer
597992522d Rename kMaxFrameRenderingIdleTime to kMaxActiveIdleTime and adjust it to the currently maximum value of 50ms passed in by the Blink scheduler.
BUG=468692
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27321}
2015-03-19 19:41:19 +00:00
rossberg
74cf8e0122 [strong] Check constructor returns
R=dslomov@chromium.org
BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27320}
2015-03-19 19:40:04 +00:00
titzer
cd33978480 [turbofan] Remove last_use_ field from Node.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27319}
2015-03-19 15:44:35 +00:00
jochen
843634994f Use libdl to get symbols for backtraces
With this patch, it'll look like this:

$ out/x64.optdebug/d8 --expose-trigger-failure test/mjsunit/mjsunit.js test/mjsunit/verify-assert-false.js

==== C stack trace ===============================

 1: V8_Fatal
 2: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
 3: 0x727ced
 4: 0x72b6ba
 5: 0x188c7f607f9b

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

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

Cr-Commit-Position: refs/heads/master@{#27318}
2015-03-19 15:43:35 +00:00
hpayer
22d62cea4d Remove early bail-out in VisitWeakList to investigate chrasher.
BUG=468601
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27317}
2015-03-19 15:04:54 +00:00
caitpotter88
d21fd15467 [es6] implement Reflect.apply() & Reflect.construct()
BUG=v8:3900
LOG=N
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27316}
2015-03-19 14:47:27 +00:00
weiliang.lin
1ecc161cc8 [x86] Atom check includes AMT
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27315}
2015-03-19 14:32:55 +00:00
ulan
9b77e8677b Add debug checks to catch crashes with WeakCell::cast().
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27314}
2015-03-19 14:22:36 +00:00
dslomov
f1d970a4ae Add a counter for legacy const.
Only adds a counter id, does not count anything.

R=jochen@chromium.org
BUG=v8:3942
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27313}
2015-03-19 14:17:42 +00:00
yangguo
7ccdbcf40c Serializer: another small reorder of root objects.
I was mistaken, cons strings only occur a lot for custom heap snapshots,
not for the default start-up snapshot.

R=erik.corry@gmail.com, mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27312}
2015-03-19 14:07:50 +00:00
rodolph.perfetta
a7cdc10f15 [arm64] serialize internal references via object visitor
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27311}
2015-03-19 14:01:52 +00:00
jarin
b7dc9c580a [turbofan] Remember types for deoptimization during simplified lowering.
With this change, we remember the types of frame state inputs (in a new
operator, called TypedStateValues). Instead of inferring the value types
when building translations, we used the recorded types.

The original approach was not reliable because the passes after
simplified lowering can change node types, and this in turn confuses
the translation builder.

BUG=chromium:468727
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27310}
2015-03-19 14:00:33 +00:00
yangguo
87af601824 Add debug checks to catch PropertyCell::cast failures.
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27309}
2015-03-19 13:59:17 +00:00
bmeurer
fb966fd666 [turbofan] Use proper parameter representation for stub calls.
The CallInterfaceDescriptor already provides information about the
expected representation of parameters, so we can use that instead of
hardcoding tagged representation for all parameters.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27308}
2015-03-19 13:58:19 +00:00
dusan.milosavljevic
b37c0890d4 MIPS: Tweak constants to be in favor of table switch.
In prevous set-up table switch is rarely generated.

TEST=cctest/test-serialize/SerializeInternalReference
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27307}
2015-03-19 13:57:10 +00:00
mstarzinger
0819ed9f33 Revert of Cleanup and unify Isolate::ReportPendingMessages. (patchset #4 id:60001 of https://codereview.chromium.org/999923004/)
Reason for revert:
Failing Blink tests on Win and Mac:
- plugins/netscape-plugin-property-access-exception.html
- http/tests/plugins/cross-frame-object-access.html

Original issue's description:
> Cleanup and unify Isolate::ReportPendingMessages.
>
> Note that this is a pure cleanup CL and shouldn't have an observable
> impact on the functional behavior of message reporting.
>
> R=yangguo@chromium.org

TBR=yangguo@chromium.org,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#27306}
2015-03-19 13:22:51 +00:00
bmeurer
e18e3cd4d8 [stubs] Add missing interface descriptor for the CompareIC.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27305}
2015-03-19 13:09:37 +00:00
titzer
de2a225a82 [turbofan] Fix GVN of projections and add verification for projection uniqueness.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27304}
2015-03-19 13:04:06 +00:00
jacob.bramley
3fdfe613f8 [ARM64] [turbofan] Support uxtb/uxth for add/sub.
Add support for appending extend modes uxtb or uxth to add and subtract
instructions, and using them in the instruction selector.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27303}
2015-03-19 12:44:23 +00:00
dpranke
8213be1a06 Fix a stray reference to 'build_os' in BUILD.gn.
This should be 'host_os'; the build_os variable is going away.

R=jochen@chromium.org
BUG=344767
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27302}
2015-03-19 12:43:16 +00:00
dusan.milosavljevic
a1331af594 MIPS64: Fix bug in jump table test.
TEST=test-assembler-mips64/jump_tables3
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27301}
2015-03-19 12:42:11 +00:00
mstarzinger
addca70725 [turbofan] Remove stale TODO from FunctionTester.
R=titzer@chromium.org
TEST=cctest/test-run-jsexceptions

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

Cr-Commit-Position: refs/heads/master@{#27300}
2015-03-19 12:41:05 +00:00
svenpanne
e396f538d0 Some CompilationInfo-related cleanup.
Use a delegating constructor for CompilationInfo, reducing duplicated
code. Simplified handling of InlinedFunctionInfos on the way: When we
start compiling, we have bigger things to worry about than a default
vector.

Reduced the usage of a SharedFunctionInfo for compiling, this is a
slighty strange concept.

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

Cr-Commit-Position: refs/heads/master@{#27299}
2015-03-19 12:40:00 +00:00
jochen
5d8e3bfaff Clarify what APIs return Maybe and MaybeLocal values
If the Maybe is nothing or the MaybeLocal is empty, it means that the
API call either threw an exception or an exception was already pending.

In that case, the embedder needs to handle the exception or otherwise
react to the failed API call.

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

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

Cr-Commit-Position: refs/heads/master@{#27298}
2015-03-19 12:38:38 +00:00
Benedikt Meurer
a9da8a333a [turbofan] Turn weaken min/max limits for typer into constants.
The weaken limits are constants, there's no point in having a separate
copy of those constants per typer that is initialized per Typer
instance.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27297}
2015-03-19 11:45:59 +00:00
rodolph.perfetta
abf78583b9 [arm64] Assembler support for internal references.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27296}
2015-03-19 10:24:54 +00:00
Benedikt Meurer
a75e4cea8f [turbofan] Remove indirection in JSToBoolean/JSUnaryNot lowering.
This reduces the overhead of typed lowering, because we lower
JSToBoolean/JSUnaryNot directly if possible, instead of first lowering
to AnyToBoolean, and then letting the SimplifiedOperatorReducer do the
further lowering.

Also remove some obsolete tests from the cctest suite that have since
been removed by proper unittests. And improve unitttest coverage for the
typed lowering cases.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27295}
2015-03-19 10:13:12 +00:00
yangguo
5383257ecc Do not test debug-scripts-request with TurboFan.
This test has been failing flakily on gc-stress, only with --turbo-filter=*

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27294}
2015-03-19 10:07:12 +00:00