- 19 Aug, 2016 1 commit
-
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2259883002 Cr-Commit-Position: refs/heads/master@{#38758}
-
- 08 Aug, 2016 1 commit
-
-
bmeurer authored
Introduce a dedicated MaybeGrowFastElements simplified operator, which tries to grow a fast elements backing store for a given element that should be added to an array/object. Use that to lower a growing keyed store to a sequence of 1) check index is a valid array index, 2) check stored value, 3) maybe grow elements backing store (and deoptimize if it would normalize), and 4) store the actual element. The actual growing is done by two dedicated GrowFastDoubleElements and GrowFastSmiOrObjectElements builtins, which are very similar to the GrowArrayElementsStub that is used by Crankshaft. Drive-by-fix: Turn CopyFixedArray into CopyFastSmiOrObjectElements builtin, similar to the new growing builtins, so we don't need to inline the store+write barrier for the elements into all optimized code objects anymore. Also fix a bug in the OperationTyper for NumberSilenceNaN, which was triggered by this change. BUG=v8:5272 Review-Url: https://codereview.chromium.org/2227493002 Cr-Commit-Position: refs/heads/master@{#38418}
-
- 05 Aug, 2016 3 commits
-
-
bmeurer authored
This extends JSNativeContextSpecialization with support for stores to fast object/smi element backing stores that are marked as copy-on-write. In this case we first call the CopyFixedArray builtin to take a copy of the elements backing store, and then store the new elements back to the object, and finally perform the actual element store. R=epertoso@chromium.org BUG=v8:4470 Committed: https://crrev.com/ac98ad22f049a59c48387f1bab1590f135d219c6 Review-Url: https://codereview.chromium.org/2218703003 Cr-Original-Commit-Position: refs/heads/master@{#38370} Cr-Commit-Position: refs/heads/master@{#38392}
-
bmeurer authored
Revert of [turbofan] Add support for copy-on-write element stores. (patchset #2 id:20001 of https://codereview.chromium.org/2218703003/ ) Reason for revert: Breaks tree? Original issue's description: > [turbofan] Add support for copy-on-write element stores. > > This extends JSNativeContextSpecialization with support for stores to > fast object/smi element backing stores that are marked as copy-on-write. > In this case we first call the CopyFixedArray builtin to take a copy of > the elements backing store, and then store the new elements back to the > object, and finally perform the actual element store. > > R=epertoso@chromium.org > BUG=v8:4470 > > Committed: https://crrev.com/ac98ad22f049a59c48387f1bab1590f135d219c6 > Cr-Commit-Position: refs/heads/master@{#38370} TBR=epertoso@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4470 Review-Url: https://codereview.chromium.org/2220513002 Cr-Commit-Position: refs/heads/master@{#38376}
-
bmeurer authored
This extends JSNativeContextSpecialization with support for stores to fast object/smi element backing stores that are marked as copy-on-write. In this case we first call the CopyFixedArray builtin to take a copy of the elements backing store, and then store the new elements back to the object, and finally perform the actual element store. R=epertoso@chromium.org BUG=v8:4470 Review-Url: https://codereview.chromium.org/2218703003 Cr-Commit-Position: refs/heads/master@{#38370}
-
- 01 Aug, 2016 1 commit
-
-
bmeurer authored
This adds initial support to inline a couple of the ArrayBuffer view accessors like %TypeArray%.prototype.length and. DataView.prototype.byteLength. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2199753002 Cr-Commit-Position: refs/heads/master@{#38200}
-
- 27 Jul, 2016 1 commit
-
-
bmeurer authored
Introduce an appropriate StringCharCodeAt simplified operator and use that to optimize the String.prototype.charCodeAt/.charAt builtins. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2180373005 Cr-Commit-Position: refs/heads/master@{#38106}
-
- 14 Jul, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2141953002 Cr-Commit-Position: refs/heads/master@{#37764}
-
- 14 Jun, 2016 1 commit
-
-
cbruni authored
Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) Reason for revert: Cannot reproduce gc-stress failures locally. Original issue's description: > Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) > > Reason for revert: > failing tests > > Original issue's description: > > Replace all remaining Oddball checks with new function > > > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > > The new method all take the isolate as parameter. > > > > BUG= > > > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > > Cr-Commit-Position: refs/heads/master@{#36921} > > TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/33b8bc24a12fb062100c0be84456faeb0b9fa5d1 > Cr-Commit-Position: refs/heads/master@{#36923} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2059173002 Cr-Commit-Position: refs/heads/master@{#36957}
-
- 13 Jun, 2016 2 commits
-
-
cbruni authored
Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) Reason for revert: failing tests Original issue's description: > Replace all remaining Oddball checks with new function > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > The new method all take the isolate as parameter. > > BUG= > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > Cr-Commit-Position: refs/heads/master@{#36921} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2060213002 Cr-Commit-Position: refs/heads/master@{#36923}
-
cbruni authored
This CL removes the IsUndefined() and Co. methods from Object and HeapObject. The new method all take the isolate as parameter. BUG= Review-Url: https://codereview.chromium.org/2043183003 Cr-Commit-Position: refs/heads/master@{#36921}
-
- 10 Jun, 2016 1 commit
-
-
jarin authored
This should solve the problem with missing checkpoints after JSToNumber (PlainPrimitiveToNumber is marked no-write, so the frame-state propagation should see through it.) Unfortunately, this also duplicates the word32- and float64-truncation magic that we have for JSToNumber in "simplified lowering". Review-Url: https://codereview.chromium.org/2059653002 Cr-Commit-Position: refs/heads/master@{#36881}
-
- 06 Jun, 2016 2 commits
-
-
mtrofin authored
We should use both the int value as well as the reloc info mode for the key of a relocatable int{32|64}. BUG= Review-Url: https://codereview.chromium.org/2039023002 Cr-Commit-Position: refs/heads/master@{#36762}
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 27 May, 2016 1 commit
-
-
mvstanton authored
We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. BUG= Review-Url: https://codereview.chromium.org/1906823002 Cr-Commit-Position: refs/heads/master@{#36539}
-
- 25 May, 2016 2 commits
-
-
bmeurer authored
Caching nodes with mutable inputs is a bad idea and already blew up twice now, so in order to avoid further breakage, let's kill the EmptyFrameState caching on JSGraph completely and only cache the empty state values there. We can remove the hacking from JSTypedLowering completely once we have the PlainPrimitiveToNumber in action. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2006423003 Cr-Commit-Position: refs/heads/master@{#36511}
-
bmeurer authored
Previously we first created a temporary graph for the inlinee and then copied over all the nodes to the actual graph. This however introduces unnecessary complexity, and we can instead just create the inlinee inside the target graph. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2006353003 Cr-Commit-Position: refs/heads/master@{#36508}
-
- 10 May, 2016 1 commit
-
-
neis authored
In the bytecode graphbuilder, translate the two generator-specific bytecodes as a couple of runtime calls for now. BUG=v8:4907 LOG=n Review-Url: https://codereview.chromium.org/1957393004 Cr-Commit-Position: refs/heads/master@{#36134}
-
- 30 Apr, 2016 1 commit
-
-
bmeurer authored
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. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel R=mstarzinger@chromium.org BUG=v8:4969 LOG=n Review-Url: https://codereview.chromium.org/1926023002 Cr-Commit-Position: refs/heads/master@{#35918}
-
- 28 Apr, 2016 2 commits
-
-
machenbach authored
Revert of [turbofan] Run everything after representation selection concurrently. (patchset #2 id:20001 of https://codereview.chromium.org/1926023002/ ) Reason for revert: [Sheriff] Flaky crashed here and there: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9867 https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/9589 https://build.chromium.org/p/client.v8/builders/V8%20Mac/builds/7679 Original issue's description: > [turbofan] Run everything after representation selection concurrently. > > 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. TBR=mstarzinger@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/1925073002 Cr-Commit-Position: refs/heads/master@{#35863}
-
bmeurer authored
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. Review-Url: https://codereview.chromium.org/1926023002 Cr-Commit-Position: refs/heads/master@{#35861}
-
- 18 Apr, 2016 1 commit
-
-
bmeurer authored
First step towards unifying the allocation story in TurboFan. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1900593002 Cr-Commit-Position: refs/heads/master@{#35577}
-
- 12 Apr, 2016 2 commits
-
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 Cr-Commit-Position: refs/heads/master@{#35182} Committed: https://crrev.com/297932a302ce0b73c3618ef9e4eba9d9d241f2b3 Cr-Commit-Position: refs/heads/master@{#35400} Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35407}
-
machenbach authored
Revert of [compiler] Add relocatable pointer constants for wasm memory references. (patchset #15 id:320001 of https://codereview.chromium.org/1759383003/ ) Reason for revert: [Sheriff] Breaks msan: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7842 Original issue's description: > [compiler] Add relocatable pointer constants for wasm memory references. > > Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. > > R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 > Cr-Commit-Position: refs/heads/master@{#35182} > > Committed: https://crrev.com/297932a302ce0b73c3618ef9e4eba9d9d241f2b3 > Cr-Commit-Position: refs/heads/master@{#35400} TBR=bradnelson@chromium.org,titzer@chromium.org,bmeurer@chromium.org,bradnelson@google.com,gdeepti@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1881913002 Cr-Commit-Position: refs/heads/master@{#35401}
-
- 11 Apr, 2016 1 commit
-
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 Cr-Commit-Position: refs/heads/master@{#35182} Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35400}
-
- 01 Apr, 2016 2 commits
-
-
yangguo authored
Revert of [compiler] Add relocatable pointer constants for wasm memory references. (patchset #14 id:300001 of https://codereview.chromium.org/1759383003/ ) Reason for revert: Test failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/8046 Original issue's description: > [compiler] Add relocatable pointer constants for wasm memory references. > > Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. > > R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 > Cr-Commit-Position: refs/heads/master@{#35182} TBR=bradnelson@chromium.org,titzer@chromium.org,gdeepti@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1846083005 Cr-Commit-Position: refs/heads/master@{#35185}
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35182}
-
- 16 Mar, 2016 1 commit
-
-
mstarzinger authored
This introduces {optimized_out} as another Oddball kind to be used by optimizing compilers when values are being optimized away. The aim is providing visibility when this value leaks into the application domain. Currently this will lead to {undefined} values appearing which then silently propagate through the application. The special oddball can be identified easily as a bug and also the debugger can treat it specially when needed. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1810483002 Cr-Commit-Position: refs/heads/master@{#34817}
-
- 11 Jan, 2016 1 commit
-
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1578723002 Cr-Commit-Position: refs/heads/master@{#33202}
-
- 16 Dec, 2015 2 commits
-
-
bmeurer authored
Flatten ConsString objects in JSGraph, to make sure we consistently flatten all cons strings no matter which pass creates them. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1529053003 Cr-Commit-Position: refs/heads/master@{#32878}
-
bmeurer authored
With the handle canonicalization we can now easily cache heap constant nodes based on the location of the HeapObject handle location. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1523323005 Cr-Commit-Position: refs/heads/master@{#32876}
-
- 28 Oct, 2015 1 commit
-
-
mstarzinger authored
This lowers JSCreateArguments nodes within inline (i.e. non-outermost) frames that create "mapped arguments objects" to inline allocations. The arguments count as well as each value is statically known and can be directly stored into the arguments object. Note that the object is still context-dependent and the map is loaded from the current context. The object size is not taken into account for now, we might want to limit it later though to keep code size bounded. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1403363004 Cr-Commit-Position: refs/heads/master@{#31619}
-
- 20 Oct, 2015 1 commit
-
-
bmeurer authored
It is not always safe to allocate new heap objects in the JSGraph. We might have to revisit this later once we do the canonicalization for HeapConstants. R=jarin@chromium.org BUG=chromium:545364 LOG=n Review URL: https://codereview.chromium.org/1413373002 Cr-Commit-Position: refs/heads/master@{#31421}
-
- 19 Oct, 2015 1 commit
-
-
bmeurer authored
Native context specialization now lowers monomorphic and polymorphic accesses to data and constant data properties on object and/or prototype chain. We don't deal with accessors yet, and we also completely ignore proxies (which is compatible with what Crankshaft does). The code is more or less the straightforward implementation. We will need to refactor that and extract common patterns once the remaining bits for full load/store support is in. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel R=jarin@chromium.org BUG=v8:4470 LOG=n Committed: https://crrev.com/3a0bf860b7177f7abef01ff308a53603389d958e Cr-Commit-Position: refs/heads/master@{#31340} Review URL: https://codereview.chromium.org/1396333010 Cr-Commit-Position: refs/heads/master@{#31352}
-
- 16 Oct, 2015 2 commits
-
-
jarin authored
Revert of [turbofan] Initial support for monomorphic/polymorphic property loads. (patchset #3 id:100001 of https://codereview.chromium.org/1396333010/ ) Reason for revert: Waterfall redness. Original issue's description: > [turbofan] Initial support for monomorphic/polymorphic property loads. > > Native context specialization now lowers monomorphic and > polymorphic accesses to data and constant data properties on > object and/or prototype chain. We don't deal with accessors > yet, and we also completely ignore proxies (which is compatible > with what Crankshaft does). > > The code is more or less the straightforward implementation. We > will need to refactor that and extract common patterns once the > remaining bits for full load/store support is in. > > CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel > R=jarin@chromium.org > BUG=v8:4470 > LOG=n > > Committed: https://crrev.com/3a0bf860b7177f7abef01ff308a53603389d958e > Cr-Commit-Position: refs/heads/master@{#31340} TBR=bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4470 Review URL: https://codereview.chromium.org/1408123002 Cr-Commit-Position: refs/heads/master@{#31341}
-
bmeurer authored
Native context specialization now lowers monomorphic and polymorphic accesses to data and constant data properties on object and/or prototype chain. We don't deal with accessors yet, and we also completely ignore proxies (which is compatible with what Crankshaft does). The code is more or less the straightforward implementation. We will need to refactor that and extract common patterns once the remaining bits for full load/store support is in. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1396333010 Cr-Commit-Position: refs/heads/master@{#31340}
-
- 31 Aug, 2015 1 commit
-
-
mstarzinger authored
The usage of Unique<T> throughout the TurboFan IR does not have any advantage. There is no single point in time when they are initialized and most use-sites looked through to the underlying Handle<T> anyways. Also there already was a mixture of Handle<T> versus Unique<T> in the graph and this unifies the situation to use Handle<T> everywhere. R=bmeurer@chromium.org,titzer@chromium.org Review URL: https://codereview.chromium.org/1314473007 Cr-Commit-Position: refs/heads/master@{#30458}
-
- 23 Jun, 2015 1 commit
-
-
jarin authored
This also threads through the parameter count and local count to the instruction selector. This will be later used to allow merging of various StateValues vector (and prepare for differential encoding which will not distinguish between parameters, locals and expression stack). BUG= Review URL: https://codereview.chromium.org/1191243003 Cr-Commit-Position: refs/heads/master@{#29214}
-
- 19 Jun, 2015 1 commit
-
-
bmeurer authored
The three different concerns that the ControlReducer used to deal with are now properly separated into a.) DeadCodeElimination, which is a regular AdvancedReducer, that propagates Dead via control edges, b.) CommonOperatorReducer, which does strength reduction on common operators (i.e. Branch, Phi, and friends), and c.) GraphTrimming, which removes dead->live edges from the graph. This will make it possible to run the DeadCodeElimination together with other passes that actually introduce Dead nodes, i.e. typed lowering; and it opens the door for general inlining without two stage fix point iteration. To make the DeadCodeElimination easier and more uniform, we basically reverted the introduction of DeadValue and DeadEffect, and changed the Dead operator to produce control, value and effect. Note however that this is not a requirement, but merely a way to make dead propagation easier and more uniform. We could always go back and decide to have different Dead operators if some other change requires that. Note that there are several additional opportunities for cleanup now, i.e. OSR deconstruction could be a regular reducer now, and we don't need to use TheHole as dead value marker in the GraphReducer. And we can actually run the dead code elimination together with the other passes instead of using separate passes over the graph. We will do this in follow up CLs. R=jarin@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1193833002 Cr-Commit-Position: refs/heads/master@{#29146}
-
- 18 Jun, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1186033006 Cr-Commit-Position: refs/heads/master@{#29104}
-