Commit Graph

30713 Commits

Author SHA1 Message Date
bmeurer
23a7dda9bf [turbofan] Remove atomic regions during effect/control linearization.
R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/1941373002
Cr-Commit-Position: refs/heads/master@{#35971}
2016-05-03 10:59:53 +00:00
mlippautz
5aa1d9c3cf [heap] Fix clearing slots for map and size during LeftTrimFixedArray
BUG=chromium:598319
LOG=N

Review-Url: https://codereview.chromium.org/1943263002
Cr-Commit-Position: refs/heads/master@{#35970}
2016-05-03 10:27:26 +00:00
bmeurer
7dcb6ad379 [turbofan] Restore basic write barrier elimination.
Restore the basic write barrier elimination that we used to run as part
of the simplified lowering phase (in ChangeLowering actually) before, by
moving the write barrier computation to SimplifiedLowering where we can
still look at types and consider the heap/isolate, and just update the
WriteBarrierKind in the FieldAccess/ElementAccess that we later use when
lowering to a machine Load/Store.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
R=mstarzinger@chromium.org
BUG=v8:4969,chromium:608636
LOG=n

Review-Url: https://codereview.chromium.org/1938993002
Cr-Commit-Position: refs/heads/master@{#35969}
2016-05-03 09:43:46 +00:00
vogelheim
57f0a521e4 Fix ExternalTwobyteStringUtf16CharacterStream::PushBack(kEndOfInput)
PushBack(end-of-input) is a little weird, but since
Utf16CharacterStream::Advance will advance pos_m, but not buffer_cursor_
when at the end of the stream, pushing back the end-of-input token needs
to do the exact inverse.

(The reason Advance does not advance buffer_cursor_ is that buffer_cursor_ is often dereferenced
 directly to access memory and so always needs to point to, well, memory.)
(The PushBack implementation for all other streams looks correct.)

R=rossberg@chromium.org
BUG=chromium:607903
LOG=Y

Review-Url: https://codereview.chromium.org/1941843002
Cr-Commit-Position: refs/heads/master@{#35968}
2016-05-03 09:43:45 +00:00
vogelheim
ec2cb20896 Fix Scanner::PushBack for surrogate code points.
A wise man once said: If you want right result, compare right value.

R=rossberg@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1939173002
Cr-Commit-Position: refs/heads/master@{#35967}
2016-05-03 09:41:23 +00:00
jarin
0e4469fd66 [turbofan] Rewire all control inputs in effect/control linearization.
Review-Url: https://codereview.chromium.org/1941353002
Cr-Commit-Position: refs/heads/master@{#35966}
2016-05-03 09:01:20 +00:00
bmeurer
79688584f0 [turbofan] Properly hook up string operators in the effect/control chain.
The string operators not only read memory, but also write memory in case
of cons string flattening, so we better make sure to have the stub calls
in the effect chain.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/1938383002
Cr-Commit-Position: refs/heads/master@{#35965}
2016-05-03 08:35:32 +00:00
titzer
2949e05d1e [wasm] Remove unnecessary kExprNop from WASM_BR and other macros.
R=ahaas@chromium.org,binji@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1942873002
Cr-Commit-Position: refs/heads/master@{#35964}
2016-05-03 08:20:04 +00:00
danno
fa570e55b6 [stubs]: Implement ArrayNoArgumentConstructor as a TF stub
Review-Url: https://codereview.chromium.org/1903723003
Cr-Commit-Position: refs/heads/master@{#35963}
2016-05-03 08:00:46 +00:00
littledan
d8967c5564 Renaming cleanup of Promises
The Promise code previously used many names which were gratuitiously
different from the specification. This patch swaps in names from the
ES2015 spec, and inserts crossreferences to the spec. The patch
leaves mirrors over Promises unchanged for now, as these changes
could have compatibility risk.

R=cbruni@chromium.org

Review-Url: https://codereview.chromium.org/1919143004
Cr-Commit-Position: refs/heads/master@{#35962}
2016-05-03 07:21:11 +00:00
zhengxing.li
8d018a39e4 X87: [turbofan] Run everything after representation selection concurrently.
port d1b3d426ce (r35918)

  original commit message:
  Further refactor the pipeline to even run the first scheduler (part of
  the effect control linearization) concurrently. This temporarily
  disables most of the write barrier elimination, but we will get back to
  that later.

  Drive-by-fix: Remove the dead code from ChangeLowering, and stack
  allocate the Typer in the pipeline. Also migrate the AllocateStub to a
  native code builtin, so that we have the code object + a handle to it
  available all the time.

BUG=

Review-Url: https://codereview.chromium.org/1940143002
Cr-Commit-Position: refs/heads/master@{#35961}
2016-05-03 05:56:55 +00:00
yangguo
c135ab4264 Remove some dead code in src/objects.cc
R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1942163002
Cr-Commit-Position: refs/heads/master@{#35960}
2016-05-03 05:56:54 +00:00
bmeurer
577ec180fb [turbofan] Hook up the shift code stubs with TurboFan.
Use the ShiftLeftStub, ShiftRightStub and ShiftRightLogicalStub in
JSGenericLowering instead of the old-style patching BinaryOpIC.

Also remove the machinery to support patching ICs in TurboFan
completely, as this was the last user of code patching in TurboFan!

R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/1942153002
Cr-Commit-Position: refs/heads/master@{#35959}
2016-05-03 05:33:07 +00:00
v8-autoroll
cb73f2644d Update V8 DEPS.
Rolling v8/build to 41661dd32f84419c998ffcb52bd5baff0fe94bc9

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review-Url: https://codereview.chromium.org/1945553002
Cr-Commit-Position: refs/heads/master@{#35958}
2016-05-03 03:29:42 +00:00
adamk
9e9abcfff4 Properly disallow 'yield' in class expressions and arrow parameters
Yield expressions are not allowed in formal parameter initializers of
generators, but we weren't properly catching the case where the yield
expression appeared in the 'extends' clause of a class expression.

They also aren't allowed in arrow functions, which we were failing to
catch due to not looking at the obscurely-named "FormalParameterInitializerError"
bit of ExpressionClassifier.

This patch passes along an ExpressionClassifier when parsing class
expressions and accumulates the proper error for that case.

For the arrow function case, the fix is simply to check for the
"formal parameter initializer" error once we know we've parsed
an arrow function. The error message used for this has also
been made specific to yield expressions.

Tests are added both for the error case and the non-error cases (where
yield is used in such a position inside the class body).

BUG=v8:4966, v8:4968, v8:4974
LOG=n

Review-Url: https://codereview.chromium.org/1941823003
Cr-Commit-Position: refs/heads/master@{#35957}
2016-05-03 01:57:48 +00:00
Adam Klein
5b8845bd9d Skip new module test262 tests that fail on the waterfall
BUG=v8:4985
LOG=n
TBR=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35956}
2016-05-03 01:55:04 +00:00
littledan
c81616fbfe test262 roll
R=adamk

Review-Url: https://codereview.chromium.org/1931653003
Cr-Commit-Position: refs/heads/master@{#35955}
2016-05-02 23:02:38 +00:00
bjaideep
d6229137bd PPC/s390: modify if/else block to fix debug build
changed the if/else block to fix the debug build
failure on PPC/s390.

R=adamk@chromium.org, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/1941683003
Cr-Commit-Position: refs/heads/master@{#35954}
2016-05-02 22:57:51 +00:00
jyan
141bc11e13 S390: Fix storing to below stack to avoid sampler handler corrupting stored value
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1936953004
Cr-Commit-Position: refs/heads/master@{#35953}
2016-05-02 22:02:20 +00:00
jyan
59b9ff3f7a S390X: Prevent upper 32bit corruption in 32bit ops
Fix A couple places which could cause upper 32bit corruption

R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/1939763003
Cr-Commit-Position: refs/heads/master@{#35952}
2016-05-02 21:56:59 +00:00
bbudge
1c94bed6ba Turbofan: Add MachineOperators for SIMD.
Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is:

 - Check functions.
 - 'FromXxxBits' functions. These are essentially casts.
 - UInt constructors. int and uint aren't distinguished in wasm.
 - Uint functions, except where their behavior is bitwise different from the Int function.

Some operators are typeless, i.e. they are the same for multiple related types, e.g. logical ops for int types, load/store for float and int types. Use a 'Simd128' prefix for these operators.

Skipped fns:

Float32x4Check
Float32x4FromInt32x4Bits
Float32x4FromUint32x4Bits
Float32x4FromInt16x8Bits
Float32x4FromUint16x8Bits
Float32x4FromInt8x16Bits
Float32x4FromUint8x16Bits

Int32x4Check
Int32x4FromUint32x4
Int32x4FromFloat32x4Bits
Int32x4FromUint32x4Bits
Int32x4FromInt16x8Bits
Int32x4FromUint16x8Bits
Int32x4FromInt8x16Bits
Int32x4FromUint8x16Bits

CreateUint32x4
Uint32x4Check
Uint32x4ExtractLane
Uint32x4ReplaceLane
Uint32x4Add
Uint32x4Sub
Uint32x4Mul
Uint32x4And
Uint32x4Or
Uint32x4Xor
Uint32x4Not
Uint32x4Equal
Uint32x4NotEqual
Uint32x4Select
Uint32x4Swizzle
Uint32x4Shuffle
Uint32x4FromInt32x4
Uint32x4FromFloat32x4Bits
Uint32x4FromInt32x4Bits
Uint32x4FromInt16x8Bits
Uint32x4FromUint16x8Bits
Uint32x4FromInt8x16Bits
Uint32x4FromUint8x16Bits

Bool32x4Check

Int16x8Check
Int16x8FromUint16x8
Int16x8FromFloat32x4Bits
Int16x8FromInt32x4Bits
Int16x8FromUint32x4Bits
Int16x8FromUint16x8Bits
Int16x8FromInt8x16Bits
Int16x8FromUint8x16Bits

CreateUint16x8
Uint16x8Check
Uint16x8ExtractLane
Uint16x8ReplaceLane
Uint16x8Add
Uint16x8Sub
Uint16x8Mul
Uint16x8And
Uint16x8Or
Uint16x8Xor
Uint16x8Not
Uint16x8Equal
Uint16x8NotEqual
Uint16x8Select
Uint16x8Swizzle
Uint16x8Shuffle
Uint16x8FromInt16x8
Uint16x8FromFloat32x4Bits
Uint16x8FromInt32x4Bits
Uint16x8FromUint32x4Bits
Uint16x8FromInt16x8Bits
Uint16x8FromInt8x16Bits
Uint16x8FromUint8x16Bits

Bool16x8Check

Int8x16Check
Int8x16FromUint8x16
Int8x16FromFloat32x4Bits
Int8x16FromInt32x4Bits
Int8x16FromUint32x4Bits
Int8x16FromInt16x8Bits
Int8x16FromUint16x8Bits
Int8x16FromUint8x16Bits

CreateUint8x16
Uint8x16Check
Uint8x16ExtractLane
Uint8x16ReplaceLane
Uint8x16Add
Uint8x16Sub
Uint8x16Mul
Uint8x16And
Uint8x16Or
Uint8x16Xor
Uint8x16Not
Uint8x16Equal
Uint8x16NotEqual
Uint8x16Select
Uint8x16Swizzle
Uint8x16Shuffle
Uint8x16FromInt8x16
Uint8x16FromFloat32x4Bits
Uint8x16FromInt32x4Bits
Uint8x16FromUint32x4Bits
Uint8x16FromInt16x8Bits
Uint8x16FromUint16x8Bits
Uint8x16FromInt8x16Bits

Bool8x16Check

Generic operators for Float, Int types:

Simd128Load
Simd128Load1
Simd128Load2
Simd128Load3
Simd128Store
Simd128Store1
Simd128Store2
Simd128Store3

Generic operators for Int types:

Simd128And
Simd128Or
Simd128Xor
Simd128Not

LOG=N
BUG=v8:4124

Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30
Cr-Commit-Position: refs/heads/master@{#35213}

Review-Url: https://codereview.chromium.org/1848433003
Cr-Commit-Position: refs/heads/master@{#35951}
2016-05-02 21:48:31 +00:00
bryleun
5d84567a50 S390: [turbofan] Run everything after representation selection concurrently.
Port d1b3d426ce

    Original commit message:

        Further refactor the pipeline to even run the first scheduler (part of
        the effect control linearization) concurrently. This temporarily
        disables most of the write barrier elimination, but we will get back to
        that later.

        Drive-by-fix: Remove the dead code from ChangeLowering, and stack
        allocate the Typer in the pipeline. Also migrate the AllocateStub to a
        native code builtin, so that we have the code object + a handle to it
        available all the time.

    R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=

Review-Url: https://codereview.chromium.org/1941783003
Cr-Commit-Position: refs/heads/master@{#35950}
2016-05-02 21:18:16 +00:00
littledan
4f374bbc94 Use InternalArrays from certain Intl code
The ECMA 402 implementation previously pushed directly to real
Arrays, which risks having observably incorrect behavior in the
presence of monkey patching. This patch uses InternalArrays instead
to avoid that hazard.

R=jshin@chromium.org,yangguo@chromium.org
BUG=chromium:604299
LOG=N

Review-Url: https://codereview.chromium.org/1923803002
Cr-Commit-Position: refs/heads/master@{#35949}
2016-05-02 18:19:25 +00:00
kozyatinskiy
f65e06b97c [debugger] Add JSProxy support in Runtime::GetInternalProperties
For proxy object this methods returns target value, handler object and is revoked flag.

R=yangguo@chromium.org,cbruni@chromium.org
BUG=chromium:588705
LOG=Y

Review-Url: https://codereview.chromium.org/1938663002
Cr-Commit-Position: refs/heads/master@{#35948}
2016-05-02 17:46:32 +00:00
adamk
96746cc7c7 Avoid infinite loop in RegExp.prototype[Symbol.split]
Our implementation of the spec got one comparison wrong, at
step 19.d.iii (we were comparing against 'q' instead of 'p').

R=littledan@chromium.org
BUG=chromium:607566
LOG=n

Review-Url: https://codereview.chromium.org/1940643002
Cr-Commit-Position: refs/heads/master@{#35947}
2016-05-02 17:33:32 +00:00
dgozman
eda8ea1688 Ignore CpuProfiler::SetIdle call when not profiling.
It truned out we can enter nested message loop and call
SetIdle from inside the compilation in some obscure
situations. To not whitelist all the possible StateTag values,
we'd better ignore this call when not profiling as it has
no effect anyway.

This patch also reverts DCHECK change from https://codereview.chromium.org/1922703005/.

BUG=none
LOG=N

Review-Url: https://codereview.chromium.org/1936703002
Cr-Commit-Position: refs/heads/master@{#35946}
2016-05-02 17:33:31 +00:00
adamk
567aa1be6d [full-codegen] Fix stack depth tracking when reporting unsupported super usages
Also mark VisitSuperCallReference as unreachable, as it's handled by VisitCall.

R=mstarzinger@chromium.org
BUG=v8:4967
LOG=n

Review-Url: https://codereview.chromium.org/1929213002
Cr-Commit-Position: refs/heads/master@{#35945}
2016-05-02 17:28:54 +00:00
lpy
b027b623df Make Isolate::GetStackSample API support simulator
Currently GetStackSample doesn't support simulator, thus sampler is aware of
simulator, but since we are moving it out, it shouldn't have knowledge of
simulator. This patch moves the logic using simulator accessible
to Isolate::GetStackSample, so that it supports simulator.

BUG=v8:4956
LOG=n

Review-Url: https://codereview.chromium.org/1926863003
Cr-Commit-Position: refs/heads/master@{#35944}
2016-05-02 16:47:36 +00:00
brucedawson
7741feb2ca Adding default_exe_manifest to two binaries
gn builds are missing Windows manifests for d8.exe and
mksnapshot.exe. These manifests are necessary in order to get
predictable behavior on Windows.

LOG=N
BUG=602505

Review-Url: https://codereview.chromium.org/1941433002
Cr-Commit-Position: refs/heads/master@{#35943}
2016-05-02 16:47:35 +00:00
ben
ec857f4026 Stop using deprecated hash_map in vtune-jit.cc.
Previous attempt: https://codereview.chromium.org/1924403002

Review-Url: https://codereview.chromium.org/1937753002
Cr-Commit-Position: refs/heads/master@{#35942}
2016-05-02 16:43:03 +00:00
titzer
e2f94946a8 [wasm] Remove the module environment and signature as arguments to OpcodeArity.
R=rossberg@chromium.org,ahaas@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/1937083002
Cr-Commit-Position: refs/heads/master@{#35941}
2016-05-02 15:24:54 +00:00
neis
21f2c3eafe [generators] Assign yield ids in ast-numbering rather than in bytecode-generator.
This avoids weird control flow when the bytecode generator skips dead code containing yields.

BUG=v8:4907
LOG=n

Review-Url: https://codereview.chromium.org/1927943003
Cr-Commit-Position: refs/heads/master@{#35940}
2016-05-02 15:18:16 +00:00
machenbach
c0e119244d [gn] Initialize gn for stand-alone v8
BUG=chromium:474921
LOG=n

Review-Url: https://codereview.chromium.org/1936123002
Cr-Commit-Position: refs/heads/master@{#35939}
2016-05-02 15:09:18 +00:00
bjaideep
98b074cb41 PPC: [turbofan] Run everything after representation selection concurrently.
Port d1b3d426ce

Original commit message:

    Further refactor the pipeline to even run the first scheduler (part of
    the effect control linearization) concurrently. This temporarily
    disables most of the write barrier elimination, but we will get back to
    that later.

    Drive-by-fix: Remove the dead code from ChangeLowering, and stack
    allocate the Typer in the pipeline. Also migrate the AllocateStub to a
    native code builtin, so that we have the code object + a handle to it
    available all the time.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=v8:4969
LOG=N

Review-Url: https://codereview.chromium.org/1941613002
Cr-Commit-Position: refs/heads/master@{#35938}
2016-05-02 14:53:47 +00:00
machenbach
37ca108f90 [Interpreter] Add test expectations for layout tests
BUG=v8:4866
LOG=n
NOTRY=true
TBR=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/1939043002
Cr-Commit-Position: refs/heads/master@{#35937}
2016-05-02 14:51:32 +00:00
mstarzinger
601ee4ebf4 [compiler] Untangle CompilationInfo allocated with new.
This removes the CompilationInfoWithZone class, which was used to
allocate a CompilationInfo on the C-heap. By now the CompilationJob is
the single object being allocated on the C-heap and passed between the
main thread and the compilation thread. Structs requiring destruction
can be embedded within that CompilationJob. This simplifies involved
lifetimes by coupling all lifetimes to one single object.

R=bmeurer@chromium.org

Review-Url: https://codereview.chromium.org/1930773003
Cr-Commit-Position: refs/heads/master@{#35936}
2016-05-02 14:46:40 +00:00
mtrofin
81db29dd10 [tools] Handle benchmark runs reporting more than one result.
The Wasm suite reports both compile time and code size, however,
perf-to-html.py elides one of the results (compile time, in this case).

This affects the effectiveness of results reported by perf try bot runs.

This CL addresses that.

BUG=

Review-Url: https://codereview.chromium.org/1941573002
Cr-Commit-Position: refs/heads/master@{#35935}
2016-05-02 14:25:00 +00:00
mstarzinger
cbf2a5420e [interpreter] Enable tests that no longer fail.
The compilation pipeline is correctly guarding against accidental
tier-ups by now, the tests in question should no longer fail.

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

Review-Url: https://codereview.chromium.org/1938983002
Cr-Commit-Position: refs/heads/master@{#35934}
2016-05-02 14:01:10 +00:00
ulan
bc5794e0ee Add trace event for phantom handle processing callback.
BUG=chromium:608312
LOG=NO

Review-Url: https://codereview.chromium.org/1934993002
Cr-Commit-Position: refs/heads/master@{#35933}
2016-05-02 13:04:49 +00:00
jochen
5bd0281b56 Add missing fpu mode to mipsel r1 toolchain
It's present for host and simulator builds.

BUG=none
R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/1941723002
Cr-Commit-Position: refs/heads/master@{#35932}
2016-05-02 12:32:49 +00:00
machenbach
78cf397def [Interpreter] Skip some tests that fail with --ignition
BUG=v8:4280
LOG=N
TBR=rmcilroy@chromium.org, rmcilroy@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/1934283002
Cr-Commit-Position: refs/heads/master@{#35931}
2016-05-02 12:17:52 +00:00
bmeurer
c0e65ea85d [turbofan] Extend the type fixup to LoadField as well.
For LoadElimination we must not replace LoadField nodes with other nodes
whose types are not a subtype of the original LoadField type, as that
breaks the verifier. We already fixed that earlier for store to load
forwarding, but the fix didn't cover LoadField forwarding.

This actually still generates the correct code even w/o the fix, but
since recently fails due to stronger checking in representation
selection. So this makes clusterfuzz happy again.

R=mvstanton@chromium.org
BUG=chromium:607899
LOG=n

Review-Url: https://codereview.chromium.org/1934973002
Cr-Commit-Position: refs/heads/master@{#35930}
2016-05-02 11:30:11 +00:00
bmeurer
4aa02441da [turbofan] Remove left-over change bits from ChangeLowering.
Now ChangeLowering is only concerned with lowering memory access and
allocation operations, and all changes are consistently lowered during
the effect/control linearization pass. The next step is to move the
left over lowerings to a pass dedicated to eliminate redundant loads and
stores, eliminate write barriers, fold and inline allocations.

Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
ChangeInt31ToTaggedSigned for consistency.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel

Committed: https://crrev.com/ceca5ae308bddda166651c654f96d71d74f617d0
Cr-Commit-Position: refs/heads/master@{#35924}

Review-Url: https://codereview.chromium.org/1941673002
Cr-Commit-Position: refs/heads/master@{#35929}
2016-05-02 10:23:43 +00:00
mstarzinger
ee69b4ff31 [build] Fix Makefile based build.
This fixes the Python include path after the GYP files have been
relocated into another directory.

R=machenbach@chromium.org

Review-Url: https://codereview.chromium.org/1938893002
Cr-Commit-Position: refs/heads/master@{#35928}
2016-05-02 09:42:11 +00:00
machenbach
b4c3864ba4 Revert of [turbofan] Remove left-over change bits from ChangeLowering. (patchset #2 id:20001 of https://codereview.chromium.org/1941673002/ )
Reason for revert:
[Sheriff] Breaks mac gc stress:
https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/5821

Original issue's description:
> [turbofan] Remove left-over change bits from ChangeLowering.
>
> Now ChangeLowering is only concerned with lowering memory access and
> allocation operations, and all changes are consistently lowered during
> the effect/control linearization pass. The next step is to move the
> left over lowerings to a pass dedicated to eliminate redundant loads and
> stores, eliminate write barriers, fold and inline allocations.
>
> Also remove the atomic regions now that we wire everything into the
> effect chain properly. This is an important step towards allocation
> inlining.
>
> Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
> ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
> ChangeInt31ToTaggedSigned for consistency.
>
> CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
>
> Committed: https://crrev.com/ceca5ae308bddda166651c654f96d71d74f617d0
> Cr-Commit-Position: refs/heads/master@{#35924}

TBR=ishell@chromium.org,bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/1942733002
Cr-Commit-Position: refs/heads/master@{#35927}
2016-05-02 09:29:19 +00:00
machenbach
8ba46715b0 [Ignition] Test ignition on all bots.
This adds ignition to the testing variants that are run on all
bots.

Failing tests can only be skipped with the NO_IGNITION
keyword in status files. Existing expectations for the
ignition_turbofan variant are all duplicated and use the
NO_IGNITION keyword as well now.

BUG=v8:4280
LOG=N

Committed: https://crrev.com/132c09ed619f23fb7c6d26a4e3552c703389eabd
Cr-Commit-Position: refs/heads/master@{#35865}

Review-Url: https://codereview.chromium.org/1804003002
Cr-Commit-Position: refs/heads/master@{#35926}
2016-05-02 09:25:00 +00:00
clemensh
bf1797b1d0 [wasm] Pass byte position for trapping instructions
During ast decoding and turbofan graph construction, we explicitely pass
the byte offset for all instructions which potentially trap.
The byte offset is finally passed to the runtime function which throws
the actual error, but it is not used there yet.

The WasmGraphBuilder::Binop and Unop methods have a default value of -1
for the position, which allows for more compact code for all the
functions which assemble bigger snippets from the primitive operations.
Whenever the position is actually used for generating a trap, we
check that it is not negative.

R=titzer@chromium.org

Review-Url: https://codereview.chromium.org/1915123006
Cr-Commit-Position: refs/heads/master@{#35925}
2016-05-02 08:48:24 +00:00
bmeurer
ceca5ae308 [turbofan] Remove left-over change bits from ChangeLowering.
Now ChangeLowering is only concerned with lowering memory access and
allocation operations, and all changes are consistently lowered during
the effect/control linearization pass. The next step is to move the
left over lowerings to a pass dedicated to eliminate redundant loads and
stores, eliminate write barriers, fold and inline allocations.

Also remove the atomic regions now that we wire everything into the
effect chain properly. This is an important step towards allocation
inlining.

Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
ChangeInt31ToTaggedSigned for consistency.

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel

Review-Url: https://codereview.chromium.org/1941673002
Cr-Commit-Position: refs/heads/master@{#35924}
2016-05-02 08:42:03 +00:00
mstarzinger
d9462d04a0 [compiler] Guard implicit tier-up when ensuring deopt support.
This makes sure that Compiler::EnsureDeoptimizationSupport follows the
same limitations as other compilation functions that trigger a tier-up.
Specifically it prevents against tier-up while inlining when activations
are present on the stack.

R=yangguo@chromium.org
BUG=chromium:607494
LOG=n

Review-Url: https://codereview.chromium.org/1917193007
Cr-Commit-Position: refs/heads/master@{#35923}
2016-05-02 08:37:30 +00:00
jochen
f580f76503 Port arm, arm64, mipsle, and mips64le flags to GN
BUG=chromium:607461
R=machenbach@chromium.org,brettw@chromium.org
LOG=n

Review-Url: https://codereview.chromium.org/1927893002
Cr-Commit-Position: refs/heads/master@{#35922}
2016-05-02 08:11:45 +00:00